2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-08-24 19:18:50 +00:00

75 Commits

Author SHA1 Message Date
Brian Wellington
0d89afffb2 Make sure #else and #endif for ISC_PLATFORM_USETHREADS are marked as such. 2000-09-28 21:31:08 +00:00
Brian Wellington
5a842a6fc3 The non-threaded version does a better job avoiding starvation. 2000-08-30 23:47:16 +00:00
Brian Wellington
8dd5562555 #include <isc/platform.h> 2000-08-29 22:55:57 +00:00
Brian Wellington
3be0a4382d ALlow the task manager to run without threads. This doesn't handle fairness
too well.
2000-08-29 22:30:14 +00:00
Brian Wellington
a44038277a MOre calls to DESTROYLOCK 2000-08-26 01:31:56 +00:00
Andreas Gustafsson
eb5670ecd2 send task trace output to stderr, not stdout, so that
it gets buffered synchronously with logging output sent to stderr
2000-08-24 01:40:46 +00:00
David Lawrence
40f53fa8d9 Trailing whitespace trimmed. Perhaps running "perl util/spacewhack.pl in your
own CVS tree will help minimize CVS conflicts.  Maybe not.
Blame Graff for getting me to trim all trailing whitespace.
2000-08-01 01:33:37 +00:00
Brian Wellington
677045ed61 356. [cleanup] isc_task_send no longer requires event->sender to
be non-null.
2000-07-27 22:24:54 +00:00
David Lawrence
15a4474541 word wrap copyright notice at column 70 2000-07-27 09:55:03 +00:00
Andreas Gustafsson
97684ed87d new functions isc_task_getname() and isc_task_gettag(),
to be used for debugging
2000-07-26 17:11:14 +00:00
David Lawrence
9c3531d72a add RCS id string 2000-06-22 22:00:42 +00:00
David Lawrence
49dbdb0186 update_copyrights 2000-06-21 22:05:07 +00:00
David Lawrence
87cafc5e70 Megacommit of many files.
Mostly, several functions that take pointers as arguments, almost
always char * pointers, had those pointers qualified with "const".
Those that returned pointers to previously const-qualified arguments
had their return values qualified as const.  Some structure members
were qualified as const to retain that attribute from the variables
from which they were assigned.

The macro DE_CONST was added to isc/util.h to deal with a handful of very
special places where something is qualified as const but really needs to have
its const qualifier removed.

Also cleaned up a few places where variable names clashed with reserved
identifiers.  (Which mostly works fine, but strictly speaking is undefined
by the standard.)

Minor other ISC style cleanups.
2000-06-01 17:20:56 +00:00
David Lawrence
1a69a1a78c Megacommit of dozens of files.
Cleanup of redundant/useless header file inclusion.

ISC style lint, primarily for function declarations and standalone
comments -- ie, those that appear on a line without any code, which
should be written as follows:
   /*
    * This is a comment.
    */
2000-05-08 14:38:29 +00:00
David Lawrence
fc9e755ba3 <isc/task.h> does not need <isc/mem.h> or <isc/result.h>. 2000-04-28 04:26:08 +00:00
Mark Andrews
9069fc6030 Cleanup unused mctx.
memset task->name.
2000-04-18 09:05:16 +00:00
Michael Graff
e44487bfc2 convert sender, arg, action, etc. to ev_sender, ev_arg, ev_action, etc. 2000-04-17 19:22:44 +00:00
Bob Halley
64b1a68e10 isc_task_create() no longer takes an mctx.
isc_task_mem() has been eliminated.
Use memory context reference counting.
2000-04-12 01:34:16 +00:00
Bob Halley
ca41b452ed update copyrights 2000-02-03 23:08:31 +00:00
Bob Halley
a790a11730 allow tasks to be named and tagged 2000-01-25 19:25:20 +00:00
Bob Halley
e0d8e8073f If creating a task and the manager is exiting, return ISC_R_SHUTTINGDOWN 2000-01-17 23:41:33 +00:00
Michael Graff
440be4c866 move util.h to <isc/util.h> 1999-12-16 22:24:22 +00:00
Bob Halley
3bff571ab2 Simply task API:
Tasks now terminate when

		Any shutdown events have been posted

		There are no references

		The event queue is empty

	If a task has no references and the event queue
	is empty, then a shutdown will be triggered if
	it hasn't been already.

	allowdone and allowsend are gone

	sending events can no longer fail
1999-09-23 21:30:26 +00:00
Michael Graff
0d3119d4d1 Generalize ISC_R_TASKSHUTTINGDOWN to ISC_R_SHUTTINGDOWN 1999-07-14 22:15:29 +00:00
Bob Halley
ad555ae689 Shutdown now implicitly occurs if there are no references to a task
and its event queue is empty.
The DONEOK flag is forced to true if there are no references to a task,
its event queue is empty, and it is shutting down.
Add isc_task_unsend() and isc_task_unsendrange().
Add isc_task_sendanddetach().
Event tags are now void *.
Code cleanups.
Various shutdown bug fixes.
Make tracing messages prettier.
1999-07-10 01:00:05 +00:00
Bob Halley
07697f1c52 tagged event support 1999-06-15 23:18:18 +00:00
Bob Halley
0941b4e809 add isc_task_purgeevent 1999-06-12 01:10:32 +00:00
Bob Halley
3f8744a28f support for unpurgable events 1999-06-09 23:25:50 +00:00
Bob Halley
ff1a344725 add more comments and a few missing REQUIREs 1999-05-18 19:23:13 +00:00
Bob Halley
4f39360a7f Shutdown of a task now works as follows:
When isc_task_shutdown() is called, any shutdown events are posted
	and the task goes into shutting down state.  isc_task_onshutdown()
	may no longer be called.

	If the task allows transition to the done state (the default), then
	as soon as the task's event queue is empty the task will enter the
	done state.  Once the done state has been entered, events may no
	longer be posted (regardless of the allowsend state).  If transition
	to the done state is not allowed, then the task will continue to
	exist and be able to receive events.

Moved event support to event.[ch].
The final state of a task is now called "done" not "shutdown".
Created a flags variable instead of having separate booleans.
Added isc_task_allowdone() and isc_task_purgerange().
Minor tracing fixes.
1999-05-10 23:00:30 +00:00
Bob Halley
6d356e35c6 add author info 1999-04-01 03:59:27 +00:00
Bob Halley
8bdb4ab2d1 only UNLOCK and then LOCK if actually sending an event 1999-04-01 01:09:28 +00:00
Bob Halley
9b8123723a add comment 1999-03-09 22:50:13 +00:00
Bob Halley
a823c4f11a requirement update 1999-03-07 19:21:49 +00:00
Bob Halley
bae7090755 Forgot to convert from manager->mctx to task->mctx in task_free(). 1999-01-14 20:18:31 +00:00
Bob Halley
6a50a5b6dc per task mctx 1999-01-14 20:03:54 +00:00
Bob Halley
8dcce6f922 change memctx to mem 1998-12-18 19:14:37 +00:00
Bob Halley
8e93971d17 initialize all common event fields 1998-12-18 02:28:12 +00:00
Bob Halley
131b0092c6 Improvements to the task shutdown process:
A shutdown event specification is no longer part of the
	isc_task_create() API.

	Multiple shutdown events can be requested with isc_task_onshutdown().
	Shutdown events are posted LIFO.

	The ability to send events can be enabled and disabled with
	isc_task_allowsend().

	Event actions return void; the only way to shutdown a task is to
	call isc_task_shutdown().

	There are no implicit event discards anymore.  (There is no need for
	them, since event actions cannot request immediate shutdown anymore.)
1998-12-16 02:02:10 +00:00
Bob Halley
3740b569ae the great type change 1998-12-13 23:45:21 +00:00
Bob Halley
00abfda448 convert to util.h; set magic only on success 1998-12-13 02:01:01 +00:00
Bob Halley
1633838b82 update copyrights 1998-12-12 20:48:14 +00:00
Bob Halley
d25afd60ee include config.h 1998-12-12 19:25:20 +00:00
Bob Halley
6792dd6d22 conforming changes for new pool 1998-12-11 20:38:46 +00:00
Bob Halley
da4242bf62 replace unexpect.[ch] and fatal.[ch] with error.[ch] 1998-12-04 20:00:26 +00:00
Michael Graff
59b2e9c361 add ISC_R_TASKSHUTDOWN and use it in isc_task_send() 1998-11-10 20:57:32 +00:00
Michael Graff
a609982aa7 Small change to the isc_task_send() function: return ISC_R_SUCCESS if the
event was queued, return ISC_R_NORESOURCES if not.  The error return
needs to be something different.
1998-11-10 11:39:13 +00:00
Michael Graff
1edb223dd3 return the number of items purged 1998-11-06 01:44:44 +00:00
Bob Halley
5741be0b80 add event destructor 1998-11-03 19:05:12 +00:00
Bob Halley
b32248301c the event action is now responsible for freeing the event memory 1998-10-28 01:45:43 +00:00