Commit Graph

388 Commits

Author SHA1 Message Date
mheily
1c6f8dece7 New generic lock-free map replaces the kqlist/kqtree. It does not handle overwriting an existing entry; need futher work on this part.
git-svn-id: svn://svn.code.sf.net/p/libkqueue/code/trunk@412 fb4e3144-bc1c-4b72-a658-5bcd248dd7f7
2011-02-03 04:45:40 +00:00
mheily
cf0338fdf6 Refactor kevent() to make the flow of control more obvious.
Add reference counting to the knote structure. This is slightly buggy and
probably unnecessary.

Eliminate the kqueue_lock() and kqueue_unlock() functions, and create 
a heirarchy of two locks: the knotelist lock at the filter level, and
a per-knote lock. This needs to be looked at more closely.

Make note of a race condition when kev.flags contains EV_ADD | EV_DISABLE
and a new knote is created.



git-svn-id: svn://svn.code.sf.net/p/libkqueue/code/trunk@411 fb4e3144-bc1c-4b72-a658-5bcd248dd7f7
2011-02-02 03:39:29 +00:00
mheily
23dafe1f21 Use a lock-free static array for kqueue descriptors < 512
git-svn-id: svn://svn.code.sf.net/p/libkqueue/code/trunk@410 fb4e3144-bc1c-4b72-a658-5bcd248dd7f7
2011-02-02 03:13:24 +00:00
mheily
b3d0b26c5a add additional valgrind targets
git-svn-id: svn://svn.code.sf.net/p/libkqueue/code/trunk@409 fb4e3144-bc1c-4b72-a658-5bcd248dd7f7
2011-02-02 02:54:50 +00:00
mheily
736b3ad6bc Make the Linux backend completely independent from the POSIX backend.
Optimize the Linux backend to remove the use of a per-filter pollfd. 
Each knote now adds a pollable descriptor to a per-kqueue epollfd.

Windows and Solaris backends are not yet refactored and are broken.



git-svn-id: svn://svn.code.sf.net/p/libkqueue/code/trunk@408 fb4e3144-bc1c-4b72-a658-5bcd248dd7f7
2011-02-01 02:40:59 +00:00
mheily
06a307b716 Remove kqueue validation code because of the raciness of file descriptor allocation.
Make eventfd routines part of kqops.

git-svn-id: svn://svn.code.sf.net/p/libkqueue/code/trunk@406 fb4e3144-bc1c-4b72-a658-5bcd248dd7f7
2011-01-23 21:03:19 +00:00
mheily
8c32540815 win32 fixes
git-svn-id: svn://svn.code.sf.net/p/libkqueue/code/trunk@405 fb4e3144-bc1c-4b72-a658-5bcd248dd7f7
2011-01-22 03:53:46 +00:00
mheily
e814dc5c6d win32 timer filter mostly done, improved windows_kevent_wait()
git-svn-id: svn://svn.code.sf.net/p/libkqueue/code/trunk@404 fb4e3144-bc1c-4b72-a658-5bcd248dd7f7
2011-01-21 03:30:35 +00:00
mheily
29a754d3f8 bugfix
git-svn-id: svn://svn.code.sf.net/p/libkqueue/code/trunk@403 fb4e3144-bc1c-4b72-a658-5bcd248dd7f7
2011-01-19 03:19:23 +00:00
mheily
478a9c1bdb linux fixes
git-svn-id: svn://svn.code.sf.net/p/libkqueue/code/trunk@402 fb4e3144-bc1c-4b72-a658-5bcd248dd7f7
2011-01-19 03:06:32 +00:00
mheily
2363ac675c win32 kqops changes
git-svn-id: svn://svn.code.sf.net/p/libkqueue/code/trunk@401 fb4e3144-bc1c-4b72-a658-5bcd248dd7f7
2011-01-19 03:03:38 +00:00
mheily
40cac6cb7a Disable kqueue_gc() because of the problem with file descriptor reuse after close().
Convert from hook functions to a global kqops vtable.



git-svn-id: svn://svn.code.sf.net/p/libkqueue/code/trunk@400 fb4e3144-bc1c-4b72-a658-5bcd248dd7f7
2011-01-17 19:23:30 +00:00
mheily
7c232bdc26 add additional debugging around kqueue_free()
git-svn-id: svn://svn.code.sf.net/p/libkqueue/code/trunk@399 fb4e3144-bc1c-4b72-a658-5bcd248dd7f7
2011-01-17 18:09:43 +00:00
mheily
cdb7357584 Do not install the static library. Credit: Joakim Johansson
git-svn-id: svn://svn.code.sf.net/p/libkqueue/code/trunk@398 fb4e3144-bc1c-4b72-a658-5bcd248dd7f7
2011-01-17 16:15:44 +00:00
mheily
4693efbbd4 bugfix win32
git-svn-id: svn://svn.code.sf.net/p/libkqueue/code/trunk@397 fb4e3144-bc1c-4b72-a658-5bcd248dd7f7
2011-01-17 05:25:40 +00:00
mheily
69ad7627ef fill in win32 stubs
git-svn-id: svn://svn.code.sf.net/p/libkqueue/code/trunk@396 fb4e3144-bc1c-4b72-a658-5bcd248dd7f7
2011-01-17 05:22:29 +00:00
mheily
0d41f5fd5c bugfix kqtest
git-svn-id: svn://svn.code.sf.net/p/libkqueue/code/trunk@395 fb4e3144-bc1c-4b72-a658-5bcd248dd7f7
2011-01-17 03:44:17 +00:00
mheily
cdc4911ce2 port unit tests to win32
git-svn-id: svn://svn.code.sf.net/p/libkqueue/code/trunk@394 fb4e3144-bc1c-4b72-a658-5bcd248dd7f7
2011-01-17 02:23:12 +00:00
mheily
6dc1b7744b successful win32 compile + link using POSIX API.
git-svn-id: svn://svn.code.sf.net/p/libkqueue/code/trunk@393 fb4e3144-bc1c-4b72-a658-5bcd248dd7f7
2011-01-17 01:16:00 +00:00
mheily
0e1c7813bf more win32 stuff
git-svn-id: svn://svn.code.sf.net/p/libkqueue/code/trunk@392 fb4e3144-bc1c-4b72-a658-5bcd248dd7f7
2011-01-17 01:05:25 +00:00
mheily
926fbfd0ec checkpoint of win32
git-svn-id: svn://svn.code.sf.net/p/libkqueue/code/trunk@391 fb4e3144-bc1c-4b72-a658-5bcd248dd7f7
2011-01-16 23:29:12 +00:00
mheily
af29ed30b3 git-svn-id: svn://svn.code.sf.net/p/libkqueue/code/trunk@390 fb4e3144-bc1c-4b72-a658-5bcd248dd7f7 2011-01-16 20:19:32 +00:00
mheily
77ec2a48f4 improve win32 api
git-svn-id: svn://svn.code.sf.net/p/libkqueue/code/trunk@389 fb4e3144-bc1c-4b72-a658-5bcd248dd7f7
2011-01-16 19:40:37 +00:00
mheily
109b04930c add win32 fixes back
git-svn-id: svn://svn.code.sf.net/p/libkqueue/code/trunk@388 fb4e3144-bc1c-4b72-a658-5bcd248dd7f7
2011-01-15 20:10:20 +00:00
mheily
d8ebea256c improve CONSTRUCTOR
git-svn-id: svn://svn.code.sf.net/p/libkqueue/code/trunk@387 fb4e3144-bc1c-4b72-a658-5bcd248dd7f7
2011-01-15 19:17:44 +00:00
mheily
44ff8803ec Build libkqueue.so.0.0 and create symlinks to it for libkqueue.so and libkqueue.so.0, instead of the other way around.
git-svn-id: svn://svn.code.sf.net/p/libkqueue/code/trunk@386 fb4e3144-bc1c-4b72-a658-5bcd248dd7f7
2011-01-15 19:13:10 +00:00
mheily
2b0b1e7d51 ensure make clean before make check
git-svn-id: svn://svn.code.sf.net/p/libkqueue/code/trunk@385 fb4e3144-bc1c-4b72-a658-5bcd248dd7f7
2011-01-15 18:47:48 +00:00
mheily
423c8c83bc force the use of 32-bit libgcc (osol bug #6223255)
git-svn-id: svn://svn.code.sf.net/p/libkqueue/code/trunk@384 fb4e3144-bc1c-4b72-a658-5bcd248dd7f7
2011-01-15 18:47:13 +00:00
mheily
8838666599 Do not build a static library by default
git-svn-id: svn://svn.code.sf.net/p/libkqueue/code/trunk@383 fb4e3144-bc1c-4b72-a658-5bcd248dd7f7
2011-01-15 18:39:22 +00:00
mheily
a7459d2f6d Use dynamic linking instead of static linking
git-svn-id: svn://svn.code.sf.net/p/libkqueue/code/trunk@382 fb4e3144-bc1c-4b72-a658-5bcd248dd7f7
2011-01-15 18:17:12 +00:00
mheily
65656760de Ensure that KQUEUE_DEBUG is always defined.
git-svn-id: svn://svn.code.sf.net/p/libkqueue/code/trunk@381 fb4e3144-bc1c-4b72-a658-5bcd248dd7f7
2011-01-15 17:51:18 +00:00
mheily
fa235b8355 Add win32-specific API
git-svn-id: svn://svn.code.sf.net/p/libkqueue/code/trunk@380 fb4e3144-bc1c-4b72-a658-5bcd248dd7f7
2011-01-15 17:49:12 +00:00
mheily
ef63a7a6ff Rollback to r371 to eliminate kqtest failure on Solaris
git-svn-id: svn://svn.code.sf.net/p/libkqueue/code/trunk@379 fb4e3144-bc1c-4b72-a658-5bcd248dd7f7
2011-01-15 17:43:12 +00:00
mheily
ad93cfbc8b add solaris failure note
git-svn-id: svn://svn.code.sf.net/p/libkqueue/code/trunk@378 fb4e3144-bc1c-4b72-a658-5bcd248dd7f7
2011-01-15 05:17:43 +00:00
mheily
fb975b99c9 fix solaris build failure
git-svn-id: svn://svn.code.sf.net/p/libkqueue/code/trunk@377 fb4e3144-bc1c-4b72-a658-5bcd248dd7f7
2011-01-15 05:08:54 +00:00
mheily
4eaca2e7a6 Fix all compilation and linking issues on Win32.
git-svn-id: svn://svn.code.sf.net/p/libkqueue/code/trunk@376 fb4e3144-bc1c-4b72-a658-5bcd248dd7f7
2011-01-15 04:51:20 +00:00
mheily
3ba354810e try to fix win32 link errors
git-svn-id: svn://svn.code.sf.net/p/libkqueue/code/trunk@375 fb4e3144-bc1c-4b72-a658-5bcd248dd7f7
2011-01-15 04:38:47 +00:00
mheily
0ca1a5b381 build successful on win32, does not link
git-svn-id: svn://svn.code.sf.net/p/libkqueue/code/trunk@374 fb4e3144-bc1c-4b72-a658-5bcd248dd7f7
2011-01-15 04:09:36 +00:00
mheily
514aabc78f visibilty for win32
git-svn-id: svn://svn.code.sf.net/p/libkqueue/code/trunk@373 fb4e3144-bc1c-4b72-a658-5bcd248dd7f7
2011-01-15 03:47:34 +00:00
mheily
531618b862 more use of free() and init() hooks
git-svn-id: svn://svn.code.sf.net/p/libkqueue/code/trunk@372 fb4e3144-bc1c-4b72-a658-5bcd248dd7f7
2011-01-15 03:27:46 +00:00
mheily
ce27406fea win32 header ordering
git-svn-id: svn://svn.code.sf.net/p/libkqueue/code/trunk@371 fb4e3144-bc1c-4b72-a658-5bcd248dd7f7
2011-01-15 02:44:45 +00:00
mheily
2d198f34b3 fix win32 include
git-svn-id: svn://svn.code.sf.net/p/libkqueue/code/trunk@370 fb4e3144-bc1c-4b72-a658-5bcd248dd7f7
2011-01-15 02:42:44 +00:00
mheily
9e3860e7b6 kqueue.h for win32
git-svn-id: svn://svn.code.sf.net/p/libkqueue/code/trunk@369 fb4e3144-bc1c-4b72-a658-5bcd248dd7f7
2011-01-15 02:41:12 +00:00
mheily
34d9c9b036 additional win32 stuff
git-svn-id: svn://svn.code.sf.net/p/libkqueue/code/trunk@368 fb4e3144-bc1c-4b72-a658-5bcd248dd7f7
2011-01-14 03:46:18 +00:00
mheily
6c5c5b2308 Portability fixes for Solaris (reported by Joakim Johansson)
git-svn-id: svn://svn.code.sf.net/p/libkqueue/code/trunk@366 fb4e3144-bc1c-4b72-a658-5bcd248dd7f7
2011-01-13 15:00:32 +00:00
mheily
e048da0137 Move platform-specific cruft into separate platform.h for each target
git-svn-id: svn://svn.code.sf.net/p/libkqueue/code/trunk@365 fb4e3144-bc1c-4b72-a658-5bcd248dd7f7
2011-01-13 04:45:16 +00:00
mheily
46c3bf6b10 more win portability
git-svn-id: svn://svn.code.sf.net/p/libkqueue/code/trunk@364 fb4e3144-bc1c-4b72-a658-5bcd248dd7f7
2011-01-13 03:09:55 +00:00
mheily
975066c934 move mutex init into a constructor function
git-svn-id: svn://svn.code.sf.net/p/libkqueue/code/trunk@363 fb4e3144-bc1c-4b72-a658-5bcd248dd7f7
2011-01-13 02:32:15 +00:00
mheily
5688cce8ad mark sys/select.h nonportable
git-svn-id: svn://svn.code.sf.net/p/libkqueue/code/trunk@362 fb4e3144-bc1c-4b72-a658-5bcd248dd7f7
2011-01-13 01:48:10 +00:00
mheily
47ea39ff4e more win32 porting
git-svn-id: svn://svn.code.sf.net/p/libkqueue/code/trunk@361 fb4e3144-bc1c-4b72-a658-5bcd248dd7f7
2011-01-13 01:40:00 +00:00