diff options
author | Emil Renner Berthing <esmil@mailme.dk> | 2013-08-02 19:22:06 +0200 |
---|---|---|
committer | Emil Renner Berthing <esmil@mailme.dk> | 2013-08-03 15:40:56 +0200 |
commit | 87f223e2f079adf0cc270fe8cf31f1c8c93e4e06 (patch) | |
tree | 63548cf25110888321e483937d0cb4f7b2a08c98 /test/fclose.lua | |
parent | a4c5beadd3d444f31dd8109e329b570dbbc96209 (diff) | |
download | lem-87f223e2f079adf0cc270fe8cf31f1c8c93e4e06.tar.gz lem-87f223e2f079adf0cc270fe8cf31f1c8c93e4e06.tar.xz lem-87f223e2f079adf0cc270fe8cf31f1c8c93e4e06.zip |
io: fix file:close() and file:__gc() blocking
Diffstat (limited to 'test/fclose.lua')
-rwxr-xr-x | test/fclose.lua | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/test/fclose.lua b/test/fclose.lua new file mode 100755 index 0000000..417decd --- /dev/null +++ b/test/fclose.lua @@ -0,0 +1,52 @@ +#!bin/lem +-- +-- This file is part of LEM, a Lua Event Machine. +-- Copyright 2013 Ico Doornekamp +-- Copyright 2013 Emil Renner Berthing +-- +-- LEM is free software: you can redistribute it and/or modify it +-- under the terms of the GNU Lesser General Public License as +-- published by the Free Software Foundation, either version 3 of +-- the License, or (at your option) any later version. +-- +-- LEM is distributed in the hope that it will be useful, but +-- WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with LEM. If not, see <http://www.gnu.org/licenses/>. +-- + +package.path = '?.lua' +package.cpath = '?.so' + +local utils = require 'lem.utils' +local io = require 'lem.io' + +local done = false + +utils.spawn(function() + local s, now, format = utils.newsleeper(), utils.now, string.format + local t1, t2 = now(), 0 + repeat + s:sleep(0.1) + t2 = now() + print(format("Tick after %uus", (t2 - t1)*1000000)) + t1 = t2 + until done +end) + +local file = assert(io.open('file.txt', 'w')) +local b = string.rep("a", 1024*1024) +for i = 1, 150 do + file:write(b) +end +print("Closing file") +file:close() +print("Write done") + +utils.newsleeper():sleep(1) +done = true + +-- vim: set ts=2 sw=2 noet: |