diff options
author | Steve Bennett <steveb@workware.net.au> | 2010-01-24 10:34:41 +1000 |
---|---|---|
committer | Steve Bennett <steveb@workware.net.au> | 2010-10-15 11:02:38 +1000 |
commit | ea9e4bbb490eb2be047f46c83ff32f3d5243cd71 (patch) | |
tree | 4455b44de1432882def1462df4fc654b7609fa12 /jim-aio.c | |
parent | 1df9b19429212012b245a88b08ab37caef564d1c (diff) | |
download | jimtcl-ea9e4bbb490eb2be047f46c83ff32f3d5243cd71.zip jimtcl-ea9e4bbb490eb2be047f46c83ff32f3d5243cd71.tar.gz jimtcl-ea9e4bbb490eb2be047f46c83ff32f3d5243cd71.tar.bz2 |
Enhance exec, bio
Support @filehandle syntax
Support for nommu
Disable os.fork for nommu
Remove trailing newline
No need for binary escaping in bio module
------------------------------------------------------------------------
Diffstat (limited to 'jim-aio.c')
-rw-r--r-- | jim-aio.c | 9 |
1 files changed, 9 insertions, 0 deletions
@@ -64,6 +64,7 @@ typedef struct AioFile { FILE *fp; + Jim_Obj *filename; int type; int OpenFlags; /* AIO_KEEPOPEN? keep FILE*, AIO_FDOPEN? FILE* created via fdopen */ int fd; @@ -87,6 +88,8 @@ static void JimAioDelProc(Jim_Interp *interp, void *privData) AioFile *af = privData; JIM_NOTUSED(interp); + Jim_DecrRefCount(interp, af->filename); + if (!(af->OpenFlags & AIO_KEEPOPEN)) { fclose(af->fp); } @@ -358,6 +361,8 @@ static int aio_cmd_accept(Jim_Interp *interp, int argc, Jim_Obj *const *argv) /* Create the file command */ af = Jim_Alloc(sizeof(*af)); af->fd = sock; + af->filename = Jim_NewStringObj(interp, "accept", -1); + Jim_IncrRefCount(af->filename); af->fp = fdopen(sock,"r+"); af->OpenFlags = AIO_FDOPEN; af->flags = fcntl(af->fd,F_GETFL); @@ -611,6 +616,8 @@ static int JimAioOpenCommand(Jim_Interp *interp, int argc, af->fp = fp; af->fd = fileno(fp); af->flags = fcntl(af->fd,F_GETFL); + af->filename = argv[1]; + Jim_IncrRefCount(af->filename); af->OpenFlags = OpenFlags; af->rEvent = NULL; af->wEvent = NULL; @@ -750,6 +757,8 @@ static int JimAioSockCommand(Jim_Interp *interp, int argc, af->fp = fp; af->fd = sock; af->OpenFlags = AIO_FDOPEN; + af->filename = argv[1]; + Jim_IncrRefCount(af->filename); af->flags = fcntl(af->fd,F_GETFL); af->rEvent = NULL; af->wEvent = NULL; |