Implemented by
- @mozilla.org/widget/appshell/gtk;1
- @mozilla.org/js/xpc/XPConnect;1
- @mozilla.org/network/socket-transport-service;1
- @mozilla.org/widget/appshell/mac;1
- @mozilla.org/widget/appshell/win;1
[scriptable, uuid(81d0b509-f198-4417-8020-08eb4271491f)]
interface nsIThreadObserver : nsISupports
Methods
This method is called (from nsIThread::ProcessNextEvent) after an event is processed. This method is only called on the target thread. @param thread The thread that processed another event. @param recursionDepth Indicates the number of calls to ProcessNextEvent on the call stack in addition to the current call.
void
afterProcessNextEvent(in nsIThreadInternal thread, in unsigned long recursionDepth)
This interface provides the observer with hooks to implement a layered
event queue. For example, it is possible to overlay processing events
for a GUI toolkit on top of the events for a thread:
var NativeQueue;
Observer = {
onDispatchedEvent(thread) {
NativeQueue.signal();
}
onProcessNextEvent(thread, mayWait, recursionDepth) {
if (NativeQueue.hasNextEvent())
NativeQueue.processNextEvent();
while (mayWait && !thread.hasPendingEvent()) {
NativeQueue.wait();
NativeQueue.processNextEvent();
}
}
};
NOTE: The implementation of this interface must be threadsafe.
NOTE: It is valid to change the thread's observer during a call to an
observer method.
This method is called after an event has been dispatched to the thread.
This method may be called from any thread.
@param thread
The thread where the event is being dispatched.
void
onDispatchedEvent(in nsIThreadInternal thread)
This method is called (from nsIThread::ProcessNextEvent) before an event is processed. This method is only called on the target thread. @param thread The thread being asked to process another event. @param mayWait Indicates whether or not the method is allowed to block the calling thread. For example, this parameter is false during thread shutdown. @param recursionDepth Indicates the number of calls to ProcessNextEvent on the call stack in addition to the current call.
void
onProcessNextEvent(in nsIThreadInternal thread, in boolean mayWait, in unsigned long recursionDepth)
Compare to: