db_env_set_func_yield |
#include <db.h>int db_env_set_func_yield(int (*func_yield)(void));
The Berkeley DB library requires the ability to yield the processor from the current thread of control to any other waiting threads of control.
The func_yield function must be able to cause the rescheduling of all participants in the current Berkeley DB environment, whether threaded or not. It may be incorrect to supply a thread yield function if more than a single process is operating in the Berkeley DB environment. This is because many thread-yield functions will not allow other processes to run, and the contested lock may be held by another process, not by another thread.
If no func_yield function is specified, or if the yield function returns an error, the function specified by the db_env_set_func_sleep entry will be used instead or subsequently; that is, if no yield function is specified, or if it is possible for the yield function to fail, the sleep function must cause the processor to reschedule any waiting threads of control for execution.
The db_env_set_func_yield method configures all operations performed by a process and all of its threads of control, not operations confined to a single database environment.
Although the db_env_set_func_yield method may be called at any time during the life of the application, it should normally be called before making calls to the db_env_create or db_create methods.
The db_env_set_func_yield method returns a non-zero error value on failure and 0 on success.
The func_yield function must return the value of errno on failure and 0 on success.
Copyright (c) 1996-2003 Sleepycat Software, Inc. - All rights reserved.