class type http_engine_processing_config =object..end
method config_synch_input : (Netchannels.in_obj_channel -> unit) -> Uq_engines.async_in_channel -> unitobj # config_synch_input f ch
 to create a synchronous input channel from an asynchronous one, ch.
 The function f must be called back by the synchronizer when synchronisation
 is established, and with the synchronous channel ch' as argument.
 In particular, the task of the synchronizer is to turn blocking reads of
 ch' into non-blocking reads of ch. In general there are two ways of
 implementation:ch until the end of the channel is reached,
   then call f with a wrapper channel ch' that just reads from the
   buffer.f in a different thread that blocks whenever there is nothing to
   read from ch. f runs in
 a different thread.
 CHECK: How to handle exceptions raised from f? Idea: f is obliged to
 close ch' in this case, even if ch is not yet at the end. The rest of
 exception handling is up to the user. - The complementary must also be true:
 When there is an error in the engine, ch must be closed to signal the
 other thread that we have a problem.
method config_synch_output : (Netchannels.out_obj_channel -> unit) -> Uq_engines.async_out_channel -> unitobj # config_synch_output f ch
 to create a synchronous output channel from an asynchronous one, ch.
 The function f must be called back by the synchronizer when synchronisation
 is established, and with the synchronous channel ch' as argument.
 In particular, the task of the synchronizer is to turn blocking writes to
 ch' into non-blocking writes to ch. In general there are two ways of
 implementation:f, then buffer all output to ch' until the end of the channel is
   reached, and finally output the contents of the buffer in an asynchronous
   way.f in a different thread that blocks whenever there is no space to
   write to ch. f runs in
 a different thread.
 CHECK: Exceptions.
