Mercurial > repos > tabletprog
changeset 168:224071eed9dd
Add os sleep
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Sun, 11 Aug 2013 04:02:51 -0700 |
parents | 5a6a55592c45 |
children | 9d8ae39e8e67 |
files | cbackend.js |
diffstat | 1 files changed, 11 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/cbackend.js Sun Aug 11 03:01:05 2013 -0700 +++ b/cbackend.js Sun Aug 11 04:02:51 2013 -0700 @@ -775,6 +775,7 @@ os.addInclude('<fcntl.h>'); os.addInclude('<stdlib.h>'); os.addInclude('<time.h>'); + os.addInclude('<unistd.h>'); os.addMessage('write', { vars: {str: 'string *', intret: 'obj_int32 *', filedes: 'obj_int32 *'}, lines: [ @@ -905,6 +906,16 @@ 'return &(intret64->header);' ] }); + os.addMessage('sleep', { + vars: {osecs: 'object *', secs: 'obj_int32 *', intret: 'obj_int32 *'}, + lines: [ + 'osecs = va_arg(args, object *);', + 'secs = mcall(' + getMethodId("int32") + ', 1, osecs);', + 'intret = (obj_int32 *)make_object(&obj_int32_meta, NULL, 0);', + 'intret->num = sleep(secs->num);', + 'return &(intret->header);' + ] + }); toplevel.names['os'] = os; }