Конкретизирую оррганизацию многопоточности в MomentVideo.
Зарисовки по порядку обработки данных в MomentVideo:

    клиент--->TcpServer---.
	          ^        \
	         /          '--->RtmpService
	        /                     |
	       /                      | асинхронное управление всеми объектами
	      / множество потоков     |
	     /  обработки событтий    v
	-----------------------------------------------------------------------------------
	    |
	    |
	PollGroup--->TcpConnection--->RtmpConnection----->RtmpConnection::Frontend--.
					   |     ^                                   > логика приложения
					   v      \                                 /
				       RtmpServer-------->RtmpServer::Frontend-----'
						^   \
						 \   \
	-----------------------------------------------------------------------------------
						   \   \
						    \   \
					       логика приложения



    клиент--->TcpServer-------->RtmptService
		  ^                  |
		 /                   v
	-----------------------------------------------------------------------------------
		|
	    PollGroup--->TcpConnection--->HttpServer--->RtmptServer
							     | 
							     v
						       RtmpConnection--->...
							     |
							     v
							 RtmpServer----->...

	-----------------------------------------------------------------------------------



    uri-источник--->поток gstreamer--->MomentGstModule::videoDataCb
						   |
						   v
					      VideoStream
						   |
						   v
				     VideoStream::EventHandler (mod_rtmp)
						   |
						   v
					      RtmpServer--->RtmpConnection--->...



=== PollGroup (На примере SelectPollGroup) ===

Методы:
    * requestInput  \ в общем случае - вызываются асинхронно,
    * requestOutput / но по реализации автономно работают только при вызове
                      из того же пототка.
		      requestOutput() в нормальном режиме вызывается из других
		      потоков! Поэтому для него нужно обязательно вызвать
		      trigger() на PollGroup. Сравнивай id потока, в котором
		      вызывается poll() с id потока, в котором вызван метод
		      trigger*(), и действуй соответственно.

    * addPollable    - можно вызывать всё время только из одного потока
                       (но нежелательно)
    * removePollable - вызывается асинхронно, либо через deletion queue

    * poll    - вызывается всё время из одного потока
    * trigger - вызывается асинхронно

Выходит, что PollGroup - такой же асинхронный объект, как и в MyCpp.
/Довёл SelectPollGroup до mt-safety./

=== TcpServer ===

(практически не требует синхронизации, т.к. лишён не-mt_const состяния.

=== TcpConnection ===

Основной спорный момент - поле TcpConnection::connected. В остальном
синхронизации не требует.

=== ConnectionReceiver ===

processInput() синхронизируется извне.

=== *Sender* ===

Sender должен быть MT-safe объектом.
    1) Доработать close_after_flush: внести его в ConnectionSenderImpl;
    2) Сделать ConnectionSenderImpl mt-safe объектом.
    /Сделал по-другому: Impl синхронизируется извне, а close_after_flush
     остался, где был./

=== HttpServer ===

Синхронизируется полностью извне.

