Wed, 13 Jun 2007 04:32:12 +0000
Setup management of socket create/close.
Recognized new bug: cannot create threads within threads... C contains reference to closed thread, not
global.
0 | 1 | require"luaevent" |
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 | 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() |