nb_blocks:int ->
blank:(unit -> 'a) ->
object
  val buffer : 'a array
  val mutable read : int
  val mutable state : [ `Crashed | `Idle | `Running of Thread.t | `Tired ]
  val wait_c : Condition.t
  val wait_m : Mutex.t
  val mutable write : int
  method virtual close : unit
  method virtual id : string
  method output_start : unit
  method output_stop : unit
  method virtual push_block : '-> unit
  method put_block : ('-> unit) -> unit
  method reader : unit
  method sourcering_stop : unit
end