Index: src/libchcore/TOverlappedWriterFB.h
===================================================================
diff -u -rb0a003dc39e6d21e34779cf1cf5d8a07318c1f5f -r7892d3d5ca43da7dca4d9e8e0c321c21c3e13ea0
--- src/libchcore/TOverlappedWriterFB.h	(.../TOverlappedWriterFB.h)	(revision b0a003dc39e6d21e34779cf1cf5d8a07318c1f5f)
+++ src/libchcore/TOverlappedWriterFB.h	(.../TOverlappedWriterFB.h)	(revision 7892d3d5ca43da7dca4d9e8e0c321c21c3e13ea0)
@@ -51,6 +51,9 @@
 
 		TSubTaskBase::ESubOperationResult Start();
 
+		void StartThreaded();
+		TSubTaskBase::ESubOperationResult StopThreaded();
+
 		TOverlappedWriterPtr GetWriter() const;
 
 		void SetReleaseMode();
@@ -59,6 +62,9 @@
 		TSubTaskBase::ESubOperationResult OnWriteFailed();
 		TSubTaskBase::ESubOperationResult OnWriteFinished(bool& bStopProcessing);
 
+		HANDLE GetEventWritingFinishedHandle() const;
+		HANDLE GetEventProcessingFinishedHandle() const;
+
 	private:
 		void AdjustProcessedSize(file_size_t fsWritten);
 		TSubTaskBase::ESubOperationResult AdjustFinalSize();
@@ -71,6 +77,12 @@
 		TOverlappedProcessorRangePtr m_spDataRange;
 		bool m_bReleaseMode = false;
 		bool m_bOnlyCreate = false;
+
+		TEvent m_eventProcessingFinished;
+		TEvent m_eventWritingFinished;
+
+		TWorkerThreadController& m_rThreadController;
+		TSubTaskBase::ESubOperationResult m_eThreadResult = TSubTaskBase::eSubResult_Continue;
 	};
 
 	using TOverlappedWriterFBPtr = std::shared_ptr<TOverlappedWriterFB>;