Port groveler ASDF fix from CFFI
[iolib.git] / examples / package.lisp
blob049a204022de8ea6bec4473074ff62e0e1343424
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 (:nicknames :iolib/examples)
6 (:use :cl :iolib :bordeaux-threads)
7 #+sb-package-locks
8 (:lock t)
9 (:export :run-ex1-client
10 :run-ex2-client
11 :run-ex3-client
12 :run-ex4-client
13 :run-ex5a-client
14 :run-ex5b-client
16 :run-ex1-server
17 :run-ex2-server
18 :run-ex3-server
19 :run-ex4-server
20 :run-ex5-server
21 :run-ex6-server
22 :run-ex7-server
23 :run-ex8-server
26 (in-package :iolib.examples)
28 ;;;; This file also contains some simply utilities to help the writing of the
29 ;;;; examples.
31 ;; The example host:port to which clients connect. Servers often bind to
32 ;; any interface, but listen on this port.
33 (defparameter *host* "localhost")
34 (defparameter *port* 9999)
36 ;; A simple, but efficient, queue implementation, used by some examples.
37 (defun make-queue ()
38 (cons nil nil))
40 (defun enqueue (obj q)
41 (if (null (car q))
42 (setf (cdr q) (setf (car q) (list obj)))
43 (setf (cdr (cdr q)) (list obj)
44 (cdr q) (cdr (cdr q))))
45 (car q))
47 (defun dequeue (q)
48 (pop (car q)))
50 (defun empty-queue (q)
51 (null (car q)))