sig
  type t
  external make : Phaser.t option -> int32 -> Phaser.t
    = "ocamljava_phaser_make"
  external arrive : Phaser.t -> int32 = "ocamljava_phaser_arrive"
  external arrive_and_await_advance : Phaser.t -> int32
    = "ocamljava_phaser_arrive_and_await_advance"
  external arrive_and_deregister : Phaser.t -> int32
    = "ocamljava_phaser_arrive_and_deregister"
  external await_advance : Phaser.t -> int32 -> int32
    = "ocamljava_phaser_await_advance"
  external await_advance_interruptibly : Phaser.t -> int32 -> int32
    = "ocamljava_phaser_await_advance_interruptibly"
  external await_advance_interruptibly_time :
    Phaser.t -> int32 -> int64 -> TimeUnit.t -> int32
    = "ocamljava_phaser_await_advance_interruptibly_time"
  external bulk_register : Phaser.t -> int32 -> int32
    = "ocamljava_phaser_bulk_register"
  external force_termination : Phaser.t -> unit
    = "ocamljava_phaser_force_termination"
  external get_arrived_parties : Phaser.t -> int32
    = "ocamljava_phaser_get_arrived_parties"
  external get_parent : Phaser.t -> Phaser.t option
    = "ocamljava_phaser_get_parent"
  external get_phase : Phaser.t -> int32 = "ocamljava_phaser_get_phase"
  external get_registered_parties : Phaser.t -> int32
    = "ocamljava_phaser_get_registered_parties"
  external get_root : Phaser.t -> Phaser.t = "ocamljava_phaser_get_root"
  external get_unarrived_parties : Phaser.t -> int32
    = "ocamljava_phaser_get_unarrived_parties"
  external is_terminated : Phaser.t -> bool
    = "ocamljava_phaser_is_terminated"
  external register : Phaser.t -> int32 = "ocamljava_phaser_register"
end