:- module (thread.semaphore).
:- interface.
:- import_module bool.
:- import_module io.
:- type semaphore.
:- implementation.
:- pragma foreign_type(il, semaphore, "class [mercury]mercury.thread.semaphore__csharp_code.mercury_code.ML_Semaphore").
:- pragma foreign_type(c, semaphore, "struct ML_SEMAPHORE_STRUCT *", [can_pass_as_mercury_type]).
:- pragma foreign_type(java, semaphore, "java.util.concurrent.Semaphore").
:- pragma foreign_type(csharp, semaphore, "thread__semaphore.ML_Semaphore").
:- pragma foreign_type(erlang, semaphore, "").
:- pragma foreign_import_module("C", (thread.semaphore)).
:- pragma foreign_import_module("C#", (thread.semaphore)).
:- pragma foreign_import_module("Java", (thread.semaphore)).
:- pragma foreign_import_module("IL", (thread.semaphore)).
:- pragma foreign_import_module("Erlang", (thread.semaphore)).
:- pragma foreign_import_module("C", (thread.semaphore)).
:- pragma foreign_import_module("C#", (thread.semaphore)).
:- pragma foreign_import_module("Java", (thread.semaphore)).
:- pragma foreign_import_module("IL", (thread.semaphore)).
:- pragma foreign_import_module("Erlang", (thread.semaphore)).
