Calvin Rose
fea8242ea7
Reuse overlapped overhead on windows for something useful.
2023-10-07 11:25:20 -07:00
Calvin Rose
7bfb17c209
Lots of work to make iocp work again.
...
Big issue with IOCP vs. poll variants is that the overlapped
structures have a longer lifetime than intermediate state needed
for epoll. One cannot free overlapped structures after closing a
handle/socket, like one can do with any intermediate state when using
readiness-based IO.
2023-10-07 11:18:43 -07:00
Calvin Rose
e7e4341e70
Add EV_EOF for kqueue.
2023-10-06 17:39:52 -05:00
Calvin Rose
6186be4443
Run tests verbosely
2023-10-06 01:40:12 -05:00
Calvin Rose
d07f01d7cb
Update kqueue
2023-10-06 01:33:51 -05:00
Calvin Rose
73291a30a0
Update marsh.c
2023-10-06 01:26:07 -05:00
Calvin Rose
a3b129845b
Quick blind take on getting kqueue similar to poll and poll.
2023-10-06 00:48:05 -05:00
Calvin Rose
0ff8f58be8
Simpler async model that is better suited to epoll
2023-10-06 00:37:19 -05:00
Calvin Rose
66292beec9
Don't mess with async connect on BSDs.
2023-10-04 23:33:40 -05:00
Calvin Rose
bf2af1051f
Missing &&
2023-10-04 23:29:54 -05:00
Calvin Rose
b6e3020d4c
Attempt 2 to fix bsd compilation errors.
2023-10-04 23:27:56 -05:00
Calvin Rose
8f516a1e28
Address some bsd issues.
2023-10-04 23:24:40 -05:00
Calvin Rose
5f2e287efd
Make epoll event loop use EPOLLET and not reregister file descriptors.
...
This results in fewer system calls and presumably more effcient code. It
also brings the epoll (and kqueue) code more in line with how the
windows IOCP code works, incidentally.
2023-10-04 22:35:04 -05:00
Calvin Rose
8c0d65cf9f
Merge pull request #1301 from ianthehenry/typos
2023-10-03 19:25:01 -07:00
Ian Henry
fa609a5079
fix some typos in docstrings
2023-10-03 19:17:18 -07:00
Calvin Rose
c708ff9708
Allow for qemu and other simulator based testing.
2023-10-02 23:31:55 -07:00
Calvin Rose
2ea90334a3
Remove some checking code for iocp events.
...
Be more permissive abouts events we get.
2023-10-02 23:25:26 -07:00
Calvin Rose
eea8aa555f
Revert dccb60b
to address #1299
...
This commit was to address issues with a use after free error in the
windows event loop, but the erroneous code was later reworked.
2023-10-03 00:14:25 -05:00
Calvin Rose
51a75e1872
Update janet_interpreter_interrupt to use new atomics
2023-10-01 10:52:05 -05:00
Calvin Rose
af7ed4322e
Get rid of req for 64 bit atomics
2023-10-01 10:27:51 -05:00
Calvin Rose
7cdd7cf6eb
Expose atomic refcounts to be easier to port.
...
This code was duplicate in a few places.
2023-10-01 10:09:23 -05:00
Calvin Rose
26aa622afc
Update CHANGELOG.md
2023-09-30 12:26:50 -05:00
Calvin Rose
84ad161f1e
Add support for weak references in arrays.
...
Also change weak table syntax to not require keyword arguments.
2023-09-30 10:56:43 -05:00
Calvin Rose
6efb965dab
Merge branch 'weak-tables'
2023-09-29 07:38:21 -05:00
Calvin Rose
8c90a12e0f
More test cases.
2023-09-29 07:37:33 -05:00
Calvin Rose
2d54e88e74
Update CHANGELOG.md
2023-09-28 20:41:19 -05:00
Calvin Rose
16ea5323e0
More meson tweaks.
2023-09-28 20:32:14 -05:00
Calvin Rose
7a23ce2367
See if we can fix sr.ht build due to change in install.
2023-09-28 20:24:19 -05:00
Calvin Rose
e05bc7eb54
Address compiler bug with break
.
...
Using result from `break` expression could trigger code that would
work, yet contain invalid, dead code preventing good marshalling.
2023-09-28 20:14:22 -05:00
Calvin Rose
b3a6e25ce0
Add weak references in the form of weak tables.
...
Any references exclusively held by a weak table may be collected
without the programmer needing to free references manually. A table
can be setup to have weak keys, weak values, or both.
2023-09-27 23:36:09 -05:00
Calvin Rose
b63d41102e
Fix bad merge.
2023-09-27 22:34:46 -05:00
Calvin Rose
964295b59d
Merge branch 'net-reworkings'
2023-09-27 19:06:14 -05:00
Calvin Rose
d19db30f3d
Fix meson install test.
2023-09-27 00:19:35 -05:00
Calvin Rose
d12464fc0e
Make poll work by going back to array of listeners for gc keeping.
2023-09-26 23:02:06 -05:00
Calvin Rose
a96971c8a7
More work on epoll implementation.
2023-09-26 12:05:06 -05:00
Calvin Rose
f6f769503a
Fix up ev.c to pass tests.
2023-09-26 11:11:29 -05:00
Calvin Rose
82917ac6e3
Kqueue fix.
2023-09-25 19:17:51 -07:00
Calvin Rose
a6ffafb1a2
Patches to kqueue implementation.
2023-09-25 19:07:18 -07:00
Calvin Rose
fb8c529f2e
Partial work updating epoll reimplentation.
2023-09-25 18:52:15 -07:00
Calvin Rose
1ee98e1e66
Get IOCP reworked event loop passing tests.
2023-09-25 15:19:39 -07:00
Calvin Rose
81f35f5dd1
Redo state management for Janet listeners.
...
Make more use of the built in GC code for abstracts to
be sure things are more correct. Issue before was streams could
be freed before IOCP events arrived.
2023-09-25 00:43:36 -07:00
Calvin Rose
1b402347cd
Work on debugging issue with server spawning.
2023-09-24 18:15:58 -07:00
Calvin Rose
7599656784
Update meson build once more.
2023-09-24 15:35:40 -07:00
Calvin Rose
dccb60ba35
Ignore IOCP where the event failed to deque.
2023-09-24 12:53:06 -07:00
Calvin Rose
ae642ceca0
Don't hide windows segfaults in build_win.bat.
2023-09-24 12:36:15 -07:00
Calvin Rose
471b6f9966
Add TOCLOSE back.
2023-09-24 12:28:35 -07:00
Calvin Rose
5dd18bac2c
More fixups to gc.c
2023-09-24 11:51:22 -07:00
Calvin Rose
018f4e0891
Remove some old code.
2023-09-24 10:30:58 -07:00
Calvin Rose
e85809a98a
Remove remains of gc instrumentation code.
2023-09-24 10:11:24 -07:00
Calvin Rose
e6e9bd8147
Redo async connect code to be moved out of ev.c.
...
Async connect is different than write.
2023-09-24 10:08:40 -07:00