Overview
C API (Component Interface)
This event sends a signal to the framework.
Contract Wrappers
- 1199
stillActive ()
Fields
UINT32 flags IN- None defined (must be zero).
Symbol signal IN- The signal (see below).
UINT32 udata IN- Signal data (meaning dependent on signal).
- const void* IN
- Additional signal data (meaning dependent on signal).
Return Values
See also General Interface Return Values.
C_OK
Result
- The specified signal is sent to the framework from the calling component.
Signals
- C_STILL_ACTIVE
- Worker threads are monitored for hangs by the caller thread, and if a thread does not send this signal for
TimeoutThreadHang milliseconds, the system will throw E_THREAD_HUNG , causing the execution to terminate. The signal is sent automatically by the framework between component events, which is usually often enough. However, if a process takes more than TimeoutThreadHang milliseconds to service a single event, the monitor will be triggered and execution will terminate. To avoid this, any process that is to perform extensive computation within the context of a single event should periodically send this signal. For example, send the signal once every few hundred milliseconds as you progress through a computationally expensive loop.
Example
Taken from 1199.
C++ Source Code (against 1199)
void stillActive ()
{
EventSendSignal data ;
data .flags = 0 ;
data .signal = C_STILL_ACTIVE;
data .udata = 0 ;
data .data = 0 ;
EngineEvent event ;
event .hCaller = hComponent ;
event .flags = 0 ;
event .type = ENGINE_EVENT_SEND_SIGNAL;
event .data = &data ;
____SUCCESS (brahms_engineEvent (&event ));
}
|