Fix typo
[iolib.git] / examples / package.lisp
blob7658c45558cc1c4e5be52a5a787f61e816b341b3
1 ;;;; This file was originally written by Peter Keller (psilord@cs.wisc.edu)
2 ;;;; and this code is released under the same license as IOLib.
4 (defpackage :iolib.examples
5 (:use :cl :iolib :bordeaux-threads)
6 #+sb-package-locks
7 (:lock t)
8 (:export :run-ex1-client
9 :run-ex2-client
10 :run-ex3-client
11 :run-ex4-client
12 :run-ex5a-client
13 :run-ex5b-client
15 :run-ex1-server
16 :run-ex2-server
17 :run-ex3-server
18 :run-ex4-server
19 :run-ex5-server
20 :run-ex6-server
21 :run-ex7-server
22 :run-ex8-server
25 (in-package :iolib.examples)
27 ;;;; This file also contains some simply utilities to help the writing of the
28 ;;;; examples.
30 ;; The example host:port to which clients connect. Servers often bind to
31 ;; any interface, but listen on this port.
32 (defparameter *host* "localhost")
33 (defparameter *port* 9999)
35 ;; A simple, but efficient, queue implementation, used by some examples.
36 (defun make-queue ()
37 (cons nil nil))
39 (defun enqueue (obj q)
40 (if (null (car q))
41 (setf (cdr q) (setf (car q) (list obj)))
42 (setf (cdr (cdr q)) (list obj)
43 (cdr q) (cdr (cdr q))))
44 (car q))
46 (defun dequeue (q)
47 (pop (car q)))
49 (defun empty-queue (q)
50 (null (car q)))