1334. [bug] When signing/verifying rdatasets, duplicate rdatas
need to be suppressed.
+1330. [bug] When processing events (non-threaded) only allow
+ the task one chance to use to use its quantum.
+
1327. [bug] The validator would incorrectly mark data as insecure
when seeing a bogus signature before a correct
signature.
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: types.h,v 1.32 2001/01/09 21:57:42 bwelling Exp $ */
+/* $Id: types.h,v 1.32.2.1 2002/08/06 02:20:39 marka Exp $ */
#ifndef ISC_TYPES_H
#define ISC_TYPES_H 1
typedef struct isc_socketmgr isc_socketmgr_t;
typedef struct isc_symtab isc_symtab_t;
typedef struct isc_task isc_task_t;
+typedef ISC_LIST(isc_task_t) isc_tasklist_t;
typedef struct isc_taskmgr isc_taskmgr_t;
typedef struct isc_textregion isc_textregion_t;
typedef struct isc_time isc_time_t;
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: task.c,v 1.85.2.2 2002/04/23 02:28:54 marka Exp $ */
+/* $Id: task.c,v 1.85.2.3 2002/08/06 02:20:39 marka Exp $ */
/*
* Principal Author: Bob Halley
/* Locked by task manager lock. */
unsigned int default_quantum;
LIST(isc_task_t) tasks;
- LIST(isc_task_t) ready_tasks;
+ isc_tasklist_t ready_tasks;
#ifdef ISC_PLATFORM_USETHREADS
isc_condition_t work_available;
isc_condition_t exclusive_granted;
isc_task_t *task;
#ifndef ISC_PLATFORM_USETHREADS
unsigned int total_dispatch_count = 0;
+ isc_tasklist_t ready_tasks;
#endif /* ISC_PLATFORM_USETHREADS */
REQUIRE(VALID_MANAGER(manager));
* unlocks. The while expression is always protected by the lock.
*/
+#ifndef ISC_PLATFORM_USETHREADS
+ ISC_LIST_INIT(ready_tasks);
+#endif
LOCK(&manager->lock);
while (!FINISHED(manager)) {
#ifdef ISC_PLATFORM_USETHREADS
* were usually nonempty, the 'optimization'
* might even hurt rather than help.
*/
+#ifdef ISC_PLATFORM_USETHREADS
ENQUEUE(manager->ready_tasks, task,
ready_link);
+#else
+ ENQUEUE(ready_tasks, task, ready_link);
+#endif
}
}
}
+#ifndef ISC_PLATFORM_USETHREADS
+ ISC_LIST_APPENDLIST(manager->ready_tasks, ready_tasks, ready_link);
+#endif
UNLOCK(&manager->lock);
}