    class
    	SEMAPHORE

    General
    	cluster: thread
    	description: "Semaphore synchronization object, allows threads to access global data through critical sections."
    	create: make

    Ancestors
    	DISPOSABLE*

    Queries
    	is_set: BOOLEAN
    	try_wait: BOOLEAN

    Commands
    	destroy
    	make (count: INTEGER_32)
    	post
    	wait

    Constraints
    	is thread capable