cvmfs/cvmfs — pull request #332 by reneme (2014-01-06 15:37:54+00:00)
Title: FIX: Race Condition in AbstractUploader Initialization

This fixes a race when creating an instance of a concrete **Uploader** class. `AbstractUploader` spawned a thread that invokes a *purely virtual* method of `AbstractUploader`. Though this results in a *purely virtual function called* error, when the thread is scheduled before the concrete **Uploader** instance is successfully initialised.

Additionally this contains several related unit test fixes and improvements. Up to now `T_UploadFacility` and `T_FileProcessing` worked around the `PolymorphicConstruction` template that drives the creation of concrete **Uploader** instances. Since the thread creation described above is now deferred into a `PolymorphicConstruction` specific `Initialize()` method, this workaround didn't work anymore.