diff options
Diffstat (limited to 'examples/http-server/connection-queue.tm')
| -rw-r--r-- | examples/http-server/connection-queue.tm | 25 |
1 files changed, 0 insertions, 25 deletions
diff --git a/examples/http-server/connection-queue.tm b/examples/http-server/connection-queue.tm deleted file mode 100644 index c56069e1..00000000 --- a/examples/http-server/connection-queue.tm +++ /dev/null @@ -1,25 +0,0 @@ -use pthreads - -func _assert_success(name:Text, val:Int32; inline) - fail("$name() failed!") if val < 0 - -struct ConnectionQueue(_connections:@[Int32]=@[], _mutex=pthread_mutex_t.new(), _cond=pthread_cond_t.new()) - func enqueue(queue:ConnectionQueue, connection:Int32) - queue._mutex.lock() - queue._connections.insert(connection) - queue._mutex.unlock() - queue._cond.signal() - - - func dequeue(queue:ConnectionQueue -> Int32) - conn : Int32? - - queue._mutex.lock() - - while queue._connections.length == 0 - queue._cond.wait(queue._mutex) - - conn = queue._connections.pop(1) - queue._mutex.unlock() - queue._cond.signal() - return conn! |
