If someone here has successfully gotten newlisp to work with fastcgi (and lighttpd would be nice too) please let me know how you managed to do so.
Or is there any ideas how it might be accomplished?
Thanks guys.
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
Show posts Menu
(context 'MYCONTEXT)
(define (myfunc , )
(println MAIN:a)
)
(context 'MAIN)
(setq a 10)
(MYCONTEXT:myfunc)
(context 'MYCONTEXT)
(define (myfunc value , )
(println myfunc)
)
(context 'MAIN)
(setq a 10)
(MYCONTEXT:myfunc a)
(setq a 1)
(setq b 2)
(setq c 3)
(setq d 1)
(case d
(a (do-this))
(b (do-that))
(c (do-something))
(true)
)
=> nil
(setq a 1)
(setq b 2)
(setq c 3)
(setq d 1)
(case d
((eval a) (do-this))
((eval b) (do-that))
((eval c) (do-something))
(true)
)
=> nil
# nc server 5842
%œŽ00ü›nßæ"ûO-^[[?1;2c
# telnet server 5842
Connected to server.
Escape character is '^]'.
.m'Ww¢½MºÏŸjù©3
(context 'MAIN)
(setq host "server")
(setq port 5842)
(setq socket (net-connect host port))
(if socket
(begin
(println "Connected successfully!")
(net-receive socket 'buffer 5128)
(if buffer
(println "Recieved: " buffer)
)
)
)
(net-close socket)
(exit)
# ./code
Connected successfully!
Recieved: ¹«Õ/
# ./code
Connected successfully!
Recieved: Žž»2
# ./code
Connected successfully!
Recieved: BͲ
# ./code
Connected successfully!
Recieved: {<
#!/usr/bin/newlisp
(context 'MAIN)
;; Check for a win32 platform
(if (> (& (last (sys-info)) 0xF) 4)
(begin
(println "Please run this application under unix.")
(exit)
)
)
;; Set constants
(constant 'signal 1
'release 0
'wait -1
)
(define (left-hand x)
(println "left-hand")
(set 'val 0)
(while (< val x)
(semaphore left-semaphore wait)
(println (set 'val (share data)) "<--")
(semaphore right-semaphore signal)
)
(exit)
)
(define (right-hand x)
(println "right-hand")
(for (val 1 x)
(semaphore right-semaphore wait)
(println "-->" (share data x))
(semaphore left-semaphore signal)
)
(exit)
)
(define (start x)
(println "Application Running...")
;; Allocate and fill shared memory
(set 'data (share))
(share data 0)
;; Create Semaphores for both right/left hands
(set 'left-semaphore (semaphore))
(set 'right-semaphore (semaphore))
;; Start threads
(set 'left-process-id (fork (left-hand x)))
(set 'right-process-id (fork (right-hand x)))
;; Move left hand
(semaphore left-semaphore signal)
;; Wait for threads to finish
(wait-pid left-process-id)
(wait-pid right-process-id)
;; And finally, we release the semaphores
(semaphore left-semaphore release)
(semaphore right-semaphore release)
)
(start 1000)
(exit)
tmace:/src tmace$ ./semaphore.lsp
Application Running...
left-hand
0<--
right-hand
-->1000
1000<--
-->1000
^C
user reset - in function wait-pid
called from user defined function start
(c)ontinue, (d)ebug, e(x)it, (r)eset:
user reset - in function semaphore
called from user defined function right-hand
called from user defined function start
(c)ontinue, (d)ebug, e(x)it, (r)eset:x
tmace:/src tmace$ -->1000
tmace:/src tmace$
(define (server)
(set 'addr "localhost")
(set 'port 100)
(set 'listen (net-listen port addr))
(println "Waiting for connection on: " port)
(set 'socket (net-accept listen))
(println "Accepting... ")
(if socket
(while (net-receive socket 'received 1024)
(println "I got something: " (string received))
(net-send socket (string received)
)
)
)