luaevent/test/testClient.lua

Wed, 13 Jun 2007 04:32:12 +0000

author
Thomas Harning Jr <harningt@gmail.com>
date
Wed, 13 Jun 2007 04:32:12 +0000
changeset 10
88ce07d62597
parent 2
01b3a96ae760
child 11
8339f6236a3c
permissions
-rw-r--r--

Setup management of socket create/close.
Recognized new bug: cannot create threads within threads... C contains reference to closed thread, not
global.

0
f2e807614be9 Initial commit:
Thomas Harning Jr <harningt@gmail.com>
parents:
diff changeset
1 require"luaevent"
f2e807614be9 Initial commit:
Thomas Harning Jr <harningt@gmail.com>
parents:
diff changeset
2 require"socket"
2
01b3a96ae760 * Completed mostly working version
Thomas Harning Jr <harningt@gmail.com>
parents: 0
diff changeset
3 local function setupHook(thread)
01b3a96ae760 * Completed mostly working version
Thomas Harning Jr <harningt@gmail.com>
parents: 0
diff changeset
4 if not thread then debug.sethook(function(event) print("TRACE >: ", debug.getinfo(2, 'n').name) end, 'c')
01b3a96ae760 * Completed mostly working version
Thomas Harning Jr <harningt@gmail.com>
parents: 0
diff changeset
5 else debug.sethook(thread, function(event) print("TRACE ", thread,">: ", debug.getinfo(2, 'n').name) end, 'c') end
0
f2e807614be9 Initial commit:
Thomas Harning Jr <harningt@gmail.com>
parents:
diff changeset
6 end
10
88ce07d62597 Setup management of socket create/close.
Thomas Harning Jr <harningt@gmail.com>
parents: 2
diff changeset
7 local count = 100
2
01b3a96ae760 * Completed mostly working version
Thomas Harning Jr <harningt@gmail.com>
parents: 0
diff changeset
8 local function func(sock)
01b3a96ae760 * Completed mostly working version
Thomas Harning Jr <harningt@gmail.com>
parents: 0
diff changeset
9 sock = luaevent.wrap(sock)
01b3a96ae760 * Completed mostly working version
Thomas Harning Jr <harningt@gmail.com>
parents: 0
diff changeset
10 assert(sock:connect("localhost", 20000))
10
88ce07d62597 Setup management of socket create/close.
Thomas Harning Jr <harningt@gmail.com>
parents: 2
diff changeset
11 for i = 1, 2 do
88ce07d62597 Setup management of socket create/close.
Thomas Harning Jr <harningt@gmail.com>
parents: 2
diff changeset
12 local maxZ = 10
88ce07d62597 Setup management of socket create/close.
Thomas Harning Jr <harningt@gmail.com>
parents: 2
diff changeset
13 for z = 1, maxZ do
2
01b3a96ae760 * Completed mostly working version
Thomas Harning Jr <harningt@gmail.com>
parents: 0
diff changeset
14 assert(sock:send("Greet me "))
01b3a96ae760 * Completed mostly working version
Thomas Harning Jr <harningt@gmail.com>
parents: 0
diff changeset
15 end
10
88ce07d62597 Setup management of socket create/close.
Thomas Harning Jr <harningt@gmail.com>
parents: 2
diff changeset
16 assert(sock:receive(10 * maxZ))
88ce07d62597 Setup management of socket create/close.
Thomas Harning Jr <harningt@gmail.com>
parents: 2
diff changeset
17 end
88ce07d62597 Setup management of socket create/close.
Thomas Harning Jr <harningt@gmail.com>
parents: 2
diff changeset
18 if skt then skt:close() end
88ce07d62597 Setup management of socket create/close.
Thomas Harning Jr <harningt@gmail.com>
parents: 2
diff changeset
19 count = count - 1
88ce07d62597 Setup management of socket create/close.
Thomas Harning Jr <harningt@gmail.com>
parents: 2
diff changeset
20 if count > 0 then
88ce07d62597 Setup management of socket create/close.
Thomas Harning Jr <harningt@gmail.com>
parents: 2
diff changeset
21 --local sock = assert(socket.tcp())
88ce07d62597 Setup management of socket create/close.
Thomas Harning Jr <harningt@gmail.com>
parents: 2
diff changeset
22 --luaevent.addthread(sock, func, sock)
2
01b3a96ae760 * Completed mostly working version
Thomas Harning Jr <harningt@gmail.com>
parents: 0
diff changeset
23 end
01b3a96ae760 * Completed mostly working version
Thomas Harning Jr <harningt@gmail.com>
parents: 0
diff changeset
24 end
10
88ce07d62597 Setup management of socket create/close.
Thomas Harning Jr <harningt@gmail.com>
parents: 2
diff changeset
25 for i = 1, 500 do
2
01b3a96ae760 * Completed mostly working version
Thomas Harning Jr <harningt@gmail.com>
parents: 0
diff changeset
26 local sock = assert(socket.tcp())
01b3a96ae760 * Completed mostly working version
Thomas Harning Jr <harningt@gmail.com>
parents: 0
diff changeset
27 luaevent.addthread(sock, func, sock)
01b3a96ae760 * Completed mostly working version
Thomas Harning Jr <harningt@gmail.com>
parents: 0
diff changeset
28 end
01b3a96ae760 * Completed mostly working version
Thomas Harning Jr <harningt@gmail.com>
parents: 0
diff changeset
29 luaevent.loop()

mercurial