From aycan.irican@core.gen.tr Fri Jun 1 06:41:26 2007 From: Aycan iRiCAN To: iolib-devel@common-lisp.net Subject: [iolib-devel] event handlers not working Date: Fri, 01 Jun 2007 13:40:55 +0300 Message-ID: <465FF7B7.9090700@core.gen.tr> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============2167553869576146944==" --===============2167553869576146944== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit I'm trying to write a simple example. But I cannot make the event handler work. Could you please check this code (mostly stolen from philip-jose). (in-package :asdf) (defpackage :iolib-test (:use #:common-lisp #:net.sockets #:iomux #:bordeaux-threads)) (in-package :iolib-test) (defparameter *server* nil) (defparameter *event-base* (make-instance 'iomux:event-base)) (defparameter *server-event* nil) (defun handle-connection (sock handler) (unwind-protect (progn (apply handler sock) (finish-output sock)) (close sock))) (defun make-server (port) (let ((sock (make-socket :address-family :internet :type :stream :connect :passive :ipv6 nil))) (bind-address sock +ipv4-unspecified+ :port port) (socket-listen sock) sock)) (defun make-connection-worker (socket handler) #'(lambda () (break) (apply #'handle-connection socket handler))) (defun connection-spawner (listener-socket handler) #'(lambda (fd evtype) (if (eql evtype :read) (let ((connection (accept-connection listener-socket))) (make-thread (make-connection-worker connection handler)) :name "connection worker") (format t "Error on FD ~A" fd)))) (defun add-multi-threaded-server (event-base listener-socket handler) (iomux::add-fd event-base (sockets::socket-fd listener-socket) :read (connection-spawner listener-socket handler) :persistent t)) (defun start-server (port) (setf *server* (make-server port)) (setf *server-event* (add-multi-threaded-server *event-base* *server* #'test-handler))) (defun stop-server () (close *server*) (remove-event *event-base* *server-event*) (setf *server* nil) (setf *server-event* nil)) (defun test-handler (sock) (write "Test

Hello, World!

" :stream sock)) Best Regards, -- Aycan iRiCAN http://people.core.gen.tr/~aycan.irican/ --===============2167553869576146944==-- From sionescu@common-lisp.net Fri Jun 1 09:21:32 2007 From: Stelian Ionescu To: iolib-devel@common-lisp.net Subject: Re: [iolib-devel] event handlers not working Date: Fri, 01 Jun 2007 15:21:16 +0200 Message-ID: <20070601132116.GA18793@universe.org> In-Reply-To: <465FF7B7.9090700@core.gen.tr> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============3420496095591502245==" --===============3420496095591502245== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit On Fri, Jun 01, 2007 at 01:40:55PM +0300, Aycan iRiCAN wrote: >I'm trying to write a simple example. But I cannot make the event >handler work. Could you please check this code (mostly stolen from >philip-jose). you forgot to run the event loop :) I've attached a slightly modified version of the code -- (sign :name "Stelian Ionescu" :aka "fe[nl]ix" :quote "Quidquid latine dictum sit, altum videtur.") --===============3420496095591502245== Content-Type: text/plain Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="test.lisp" MIME-Version: 1.0 OzsgLSotIE1vZGU6IExpc3A7IFN5bnRheDogQU5TSS1Db21tb24tTGlzcCAtKi0KCihpbi1wYWNr YWdlIDpjb21tb24tbGlzcC11c2VyKQoKKGRlZnBhY2thZ2UgOmlvbGliLXRlc3QKICAoOnVzZSAj OmNvbW1vbi1saXNwICM6bmV0LnNvY2tldHMgIzppb211eCAjOmJvcmRlYXV4LXRocmVhZHMpKQoK KGluLXBhY2thZ2UgOmlvbGliLXRlc3QpCgooZGVmdmFyICpzZXJ2ZXIqKQooZGVmdmFyICpldmVu dC1iYXNlKiAobWFrZS1pbnN0YW5jZSAnaW9tdXg6ZXZlbnQtYmFzZSkpCihkZWZ2YXIgKmV2ZW50 LWxvb3AtdGhyZWFkKikKKGRlZnZhciAqc2VydmVyLWV2ZW50KikKCihkZWZ1biBoYW5kbGUtY29u bmVjdGlvbiAoc29jayBoYW5kbGVyKQogICh1bndpbmQtcHJvdGVjdAogICAgICAgKHByb2duCiAg ICAgICAgIChmdW5jYWxsIGhhbmRsZXIgc29jaykKICAgICAgICAgKGZpbmlzaC1vdXRwdXQgc29j aykpCiAgICAoY2xvc2Ugc29jaykpKQoKKGRlZnVuIG1ha2Utc2VydmVyIChwb3J0KQogIChtYWtl LXNvY2tldCA6YWRkcmVzcy1mYW1pbHkgOmludGVybmV0IDp0eXBlIDpzdHJlYW0KICAgICAgICAg ICAgICAgOmNvbm5lY3QgOnBhc3NpdmUgOnJldXNlLWFkZHJlc3MgdAogICAgICAgICAgICAgICA6 bG9jYWwtaG9zdCAraXB2NC11bnNwZWNpZmllZCsgOmxvY2FsLXBvcnQgcG9ydAogICAgICAgICAg ICAgICA6aXB2NiBuaWwpKQoKKGRlZnVuIG1ha2UtY29ubmVjdGlvbi13b3JrZXIgKHNvY2tldCBo YW5kbGVyKQogICMnKGxhbWJkYSAoKQogICAgICAoaGFuZGxlLWNvbm5lY3Rpb24gc29ja2V0IGhh bmRsZXIpKSkKCihkZWZ1biBjb25uZWN0aW9uLXNwYXduZXIgKGxpc3RlbmVyLXNvY2tldCBoYW5k bGVyKQogICMnKGxhbWJkYSAoZmQgZXZ0eXBlKQogICAgICAoaWYgKGVxbCBldnR5cGUgOnJlYWQp CiAgICAgICAgICAobGV0ICgoY29ubmVjdGlvbiAoYWNjZXB0LWNvbm5lY3Rpb24gbGlzdGVuZXIt c29ja2V0KSkpCiAgICAgICAgICAgIChtYWtlLXRocmVhZCAobWFrZS1jb25uZWN0aW9uLXdvcmtl ciBjb25uZWN0aW9uIGhhbmRsZXIpCiAgICAgICAgICAgICAgICAgICAgICAgICA6bmFtZSAiY29u bmVjdGlvbiB3b3JrZXIiKSkKICAgICAgICAgIChmb3JtYXQgdCAiRXJyb3Igb24gRkQgfkEiIGZk KSkpKQoKKGRlZnVuIGFkZC1tdWx0aS10aHJlYWRlZC1zZXJ2ZXIgKGV2ZW50LWJhc2UgbGlzdGVu ZXItc29ja2V0IGhhbmRsZXIpCiAgKGFkZC1mZCBldmVudC1iYXNlIChzb2NrZXQtZmQgbGlzdGVu ZXItc29ja2V0KQogICAgICAgICAgOnJlYWQgKGNvbm5lY3Rpb24tc3Bhd25lciBsaXN0ZW5lci1z b2NrZXQgaGFuZGxlcikKICAgICAgICAgIDpwZXJzaXN0ZW50IHQpKQoKKGRlZnVuIHN0YXJ0LXNl cnZlciAocG9ydCkKICAocHJvZzEgKHNldGYgKnNlcnZlciogKG1ha2Utc2VydmVyIHBvcnQpKQog ICAgKG1ha2UtdGhyZWFkICMnKGxhbWJkYSAoKSAoZXZlbnQtZGlzcGF0Y2ggKmV2ZW50LWJhc2Uq KSkKICAgICAgICAgICAgICAgICA6bmFtZSAiZXZlbnQgbG9vcCIpCiAgICAoc2V0ZiAqc2VydmVy LWV2ZW50KiAoYWRkLW11bHRpLXRocmVhZGVkLXNlcnZlciAqZXZlbnQtYmFzZSogKnNlcnZlcioK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMndGVz dC1oYW5kbGVyKSkpKQoKKGRlZnVuIHN0b3Atc2VydmVyICgpCiAgKHJlbW92ZS1ldmVudCAqZXZl bnQtYmFzZSogKnNlcnZlci1ldmVudCopCiAgKGNsb3NlICpzZXJ2ZXIqKQogIChzZXRmICpzZXJ2 ZXIqIG5pbCkKICAoc2V0ZiAqc2VydmVyLWV2ZW50KiBuaWwpKQoKKGRlZnVuIHRlc3QtaGFuZGxl ciAoc29jaykKICAod3JpdGUgIjxIVE1MPjxIRUFEPjxUSVRMRT5UZXN0PC9USVRMRT48L0hFQUQ+ PEJPRFk+PFA+SGVsbG8sIFdvcmxkITwvUD48L0JPRFk+PC9IVE1MPiIKICAgICAgICAgOnN0cmVh bSBzb2NrKQogICh0ZXJwcmkgc29jaykpCg== --===============3420496095591502245== Content-Type: application/pgp-signature Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.sig" MIME-Version: 1.0 LS0tLS1CRUdJTiBQR1AgU0lHTkFUVVJFLS0tLS0KVmVyc2lvbjogR251UEcgdjIuMC40IChHTlUv TGludXgpCgppRDhEQlFGR1lCMU1qV3NFUjgrOUFTVVJBaUtvQUo0alZXaXl3VDJIUHgxeW5rWFhl Nkx0UE01aHVnQ2VKbTY3CnQvY09VdlI0RnRzSjNYWlFST2FNZlNVPQo9OWlDdAotLS0tLUVORCBQ R1AgU0lHTkFUVVJFLS0tLS0K --===============3420496095591502245==-- From sionescu@common-lisp.net Fri Jun 1 10:27:26 2007 From: Stelian Ionescu To: iolib-devel@common-lisp.net Subject: Re: [iolib-devel] event handlers not working Date: Fri, 01 Jun 2007 16:27:27 +0200 Message-ID: <20070601142727.GA20183@universe.org> In-Reply-To: <20070601132116.GA18793@universe.org> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0872244396798438552==" --===============0872244396798438552== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit On Fri, Jun 01, 2007 at 03:21:16PM +0200, Stelian Ionescu wrote: >On Fri, Jun 01, 2007 at 01:40:55PM +0300, Aycan iRiCAN wrote: >>I'm trying to write a simple example. But I cannot make the event >>handler work. Could you please check this code (mostly stolen from >>philip-jose). >you forgot to run the event loop :) >I've attached a slightly modified version of the code I forgot to say that you'll need the live sources of iolib-posix and iolib, although I'll soon make a new release see http://common-lisp.net/project/iolib/download.shtml -- (sign :name "Stelian Ionescu" :aka "fe[nl]ix" :quote "Quidquid latine dictum sit, altum videtur.") --===============0872244396798438552== Content-Type: application/pgp-signature Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.sig" MIME-Version: 1.0 LS0tLS1CRUdJTiBQR1AgU0lHTkFUVVJFLS0tLS0KVmVyc2lvbjogR251UEcgdjIuMC40IChHTlUv TGludXgpCgppRDhEQlFGR1lDelBqV3NFUjgrOUFTVVJBdU1mQUo0c210VXpnUUNVQWtRTlNCMUh2 V095T05rczVnQ2RIMzZKCk5LMzFSMGJ0SmhLTzVZNVF5Z1FEc2M0PQo9ZnFYUwotLS0tLUVORCBQ R1AgU0lHTkFUVVJFLS0tLS0K --===============0872244396798438552==--