Calvin Rose
dc980081cd
Fix #783 - change docstring for x86-64 to x64.
2021-09-05 12:32:33 -05:00
Calvin Rose
b75b3e3984
Working example for threaded channels.
...
Still no marshalling more complex values.
2021-08-15 15:25:07 -05:00
Andrew Chambers
f2e8691ad5
Fix init race for environ lock.
2021-08-09 14:47:41 +12:00
Damien Ready
934e091410
Note "int" vs "double" representation of seconds
2021-07-31 11:02:48 -05:00
sogaiu
8365037be5
Update os.c with new style core function declarations.
2021-07-26 16:48:04 +09:00
bakpakin
6f1695ecd4
Add utitities for interrupting the event loop.
...
janet_loop1_interrupt makes the event loop compatible
with safe interruptions for custom scheduling. Does this by exposing
custom events on the event loop. A custom event schedules a function pointer
to run in a way that can interrupt
epoll_wait/poll/GetQueuedCompletionStatus.
2021-07-25 09:08:46 -05:00
bakpakin
aafc595e3a
Fix typo.
2021-07-24 12:47:51 -05:00
bakpakin
202783c67a
Add :d switch to os/spawn.
...
This allows for starting processes that can be turned into zombies.
2021-07-24 11:55:04 -05:00
Andrew Owen
96b4e71704
Add TerminateProcess to janet_proc_gc and os_proc_kill on Windows
2021-07-11 03:56:08 -06:00
Calvin Rose
49f66a936c
Merge commit 'f4c9064b79d5b32fd74e5ddf25266356c22dd53b'
2021-04-29 15:58:41 -05:00
Chris Jones
29797b9eb0
Use _NSGetEnviron() on Apple
2021-04-27 11:54:24 +01:00
Andrew Chambers
f4c9064b79
Add config support for custom allocators.
2021-03-23 23:00:48 +13:00
John Gabriele
0f05aec563
Update os.c
...
Doc typo
2021-03-09 14:39:09 -05:00
Calvin Rose
f1819c916a
Fix build error for 1.15.2
2021-02-15 10:27:19 -06:00
Calvin Rose
7e2c433abc
Fix #636
2021-02-14 14:34:52 -06:00
Calvin Rose
6713b23a65
Change behavior of empty env table passed to os/execute on windows.
2021-02-14 11:22:20 -06:00
Calvin Rose
60078e7950
Change os/execute implementation for windows.
2021-02-14 11:04:59 -06:00
Calvin Rose
49dcc816ae
Update os/shell to be non-blocking as well.
2021-01-18 16:44:22 -06:00
Calvin Rose
634219da2c
Fix windows swallowing IOCP events in many cases.
...
This fixes windows hanging on "failed" IO operations.
2021-01-17 20:41:59 -06:00
Calvin Rose
462e74ef87
Add os/proc-close to close all pipes associated with a subprocess.
...
This will not leak handles until the GC runs in most use cases.
2021-01-16 15:11:07 -06:00
Calvin Rose
c79480342b
Remove unused defines.
2021-01-16 07:19:28 -06:00
Calvin Rose
a1cc5ca045
Fix #593 .
...
Also add ev/give-supervisor to the core.
2021-01-16 07:18:07 -06:00
sogaiu
122e2a9378
Tweak os docs
2021-01-14 08:44:56 +09:00
Calvin Rose
61cca10cf6
Allow iterating through the properties of core abstract types.
2021-01-11 23:14:07 -06:00
Calvin Rose
bf01bf631d
More work on windows networking code.
...
Remove use of WSARecv and WSASend since for whatever reason
they seem suspect. We may want to revisit this later.
2021-01-11 18:00:31 -06:00
Calvin Rose
f0dbc2e404
Fix subprocess spawning on windows.
...
Also fix (:read stream :all)
2021-01-11 11:10:23 -06:00
Calvin Rose
4df1ac5b23
Fix some issues in os.c to diagnose improve windows subprocess code.
2021-01-11 09:06:39 -06:00
Calvin Rose
7b030fe70d
Fix some return issues.
2021-01-03 11:54:31 -06:00
Calvin Rose
9760cf1f4e
Fix MSVC warning.
2021-01-03 11:47:29 -06:00
Calvin Rose
47bb7fd21b
Begin implementing async subproccesses for windows.
2021-01-03 11:21:44 -06:00
Calvin Rose
1c7ed8ca48
Use PostQueuedCompletionStatus for threaded calls on windows.
...
Ore efficient than using a self pipe.
2021-01-03 11:08:12 -06:00
Calvin Rose
05166b3673
Fix proc getter bug.
2020-12-31 16:23:20 -06:00
Calvin Rose
0a1c93b869
Add ev api for making threaded calls.
...
Easy way to make arbitrary functions in C async.
2020-12-31 16:12:42 -06:00
Calvin Rose
788f91a36f
Remove unneeded book keeping for sub processes.
...
Since we are not using signals we no longer need some bookkeeping.
2020-12-31 11:52:12 -06:00
Calvin Rose
c831ecf5d2
Working implementation of process waiting with threads.
...
Does not require all sorts of signal handling code
that is not thread-safe and can "steal processes".
However, there is a much simpler way to add this functionality
by creating a new stream and thread for each subprocess when it is
waited on. This is perhaps _slightly_ less efficient but oh so much
simpler, since we can reuse all of our concepts from streams and there
is no need to implement a whole system around the selfpipe.
2020-12-31 11:22:18 -06:00
Calvin Rose
9e42ee153c
Merge branch 'master' into HEAD
2020-12-30 12:19:13 -06:00
Calvin Rose
d7954be5e5
Update docstring for os/open.
2020-12-28 11:00:15 -06:00
Calvin Rose
d53007739e
Invert read/write bits on pipe in os/execute.
...
It was backwards, breaking this functionality.
2020-12-09 19:04:05 -06:00
Calvin Rose
cbdea8f331
Make os/execute cooperate with ev module.
...
os/execute, os/proc-wait do not block (currently posix only).
This uses the self-pipe trick to turn signals into a pollable entity.
2020-11-29 15:36:21 -06:00
Calvin Rose
53aa19a916
Several changes to move pipe creation back into ev.c
2020-11-18 10:53:36 -06:00
Calvin Rose
1b6272db2e
Fix windows ifdef.
2020-11-15 19:55:58 -06:00
Calvin Rose
6e6900fa3a
os/execute and os/spawn can take streams.
2020-11-15 12:17:29 -06:00
Calvin Rose
a7ed3dea4b
Remove some flags in os/open.
2020-11-15 10:06:20 -06:00
Calvin Rose
cdcb774dc8
Add os/pipe and os/open.
...
ev/pipe -> os/pipe, and os/open is a wrapper
around the open system call.
2020-11-15 09:57:29 -06:00
Calvin Rose
540425a41b
Make docstring less confusing - Fix #493 .
2020-11-02 09:09:22 -06:00
Calvin Rose
32bf70571a
Fix os/spawn piping on windows and free handles on errors.
2020-09-13 20:49:38 -05:00
Calvin Rose
524c9b50d4
Add windows implementation for piping.
2020-09-12 19:56:48 -05:00
Calvin Rose
d3147b661b
Add :pipe to os/spawn for piping to subprocess.
...
Similar to Python's subprocess.PIPE, this creates and manages pipes
automatically for the caller.
2020-09-12 19:48:12 -05:00
Calvin Rose
b53890ddae
Make some changes for WASM build.
2020-09-07 16:08:43 -05:00
Calvin Rose
821a8dca3b
Fix os/spawn - os/execute switch.
2020-09-04 14:54:58 -05:00