X-Git-Url: http://git.silcnet.org/gitweb/?p=website.git;a=blobdiff_plain;f=docs%2Ftoolkit%2Fmanual%2Fsilcfsm-silc_fsm_thread_alloc.html;fp=docs%2Ftoolkit%2Fmanual%2Fsilcfsm-silc_fsm_thread_alloc.html;h=9a46f062e6709ccb045544e8c649420424f2a8b5;hp=0000000000000000000000000000000000000000;hb=80b80cef93d9dff6acc4bc8e3a522c55fcdc3fca;hpb=43e53f529ca5c7d2ddb7cee8e76e273631e6f1e2 diff --git a/docs/toolkit/manual/silcfsm-silc_fsm_thread_alloc.html b/docs/toolkit/manual/silcfsm-silc_fsm_thread_alloc.html new file mode 100644 index 0000000..9a46f06 --- /dev/null +++ b/docs/toolkit/manual/silcfsm-silc_fsm_thread_alloc.html @@ -0,0 +1,299 @@ + + + + + + + + + + + + + + + + + + + +
Copyright © 2001 - 2007 SILC Project
+ SILC Project Website
+ SILC Toolkit Reference Manual
+ Index
+ + +
+ + + + + + + + + + + + + + +
+ + + +
+
+ + + +SILC Toolkit Reference Manual
+ + +SILC Crypto Library
+    Introduction to SILC RNG
+    SILC RNG Interface
+    SILC Cipher API
+    SILC PKCS API
+    SILC Public Key API
+    SILC PKCS #1 API
+    SILC Hash Interface
+    SILC HMAC Interface
+SILC Core Library
+    SILC Authentication Interface
+    SILC Message Interface
+    SILC Channel Interface
+    SILC Command Interface
+    SILC Notify Interface
+    SILC Status Types
+    SILC Modes
+    SILC ID Interface
+    SILC Argument Interface
+    SILC Attributes Interface
+    Packet Engine Interface
+    SILC Public Key Payload Interface
+SILC Key Exchange Library
+    SILC SKE Interface
+    SILC Connection Authentication Interface
+SILC VCard Library
+    SILC VCard Interface
+SILC Math Library
+    SILC MP Interface
+    SILC Math Interface
+SILC Client Library
+    Using SILC Client Library Tutorial
+    Arguments for command_reply Client Operation
+    SilcStatus Error Arguments in command_reply Client Operation
+    Arguments for notify Client Operation
+    Unicode and UTF-8 Strings in Client Library
+    Client Library Interface Reference
+    Client Entry Interface Reference
+SILC ASN.1 Library
+    SILC ASN.1 Interface
+    SILC BER interface
+SILC HTTP Library
+    SILC HTTP Server Interface
+    SILC HTTP PHP Translator
+SILC Utility Library
+    Basic Types and Definitions
+    Data Buffer Interface
+    Data Buffer Format Interface
+    Hash Table Interface
+    Memory Allocation Interface
+    Data Stack (memory pool) Interface
+    Finite State Machine Interface
+    Thread Interface
+    Mutual Exclusion Lock Interface
+    Condition Variable Interface
+    Atomic Operations Interface
+    Network (TCP and UDP) Interface
+    Scheduler Interface
+    Asynchronous Operation Interface
+    Abstract Stream Interface
+    Socket Stream Interface
+    File Descriptor Stream Interface
+    File Utility Functions
+    String Utility Interface
+    Snprintf Interface
+    UTF-8 String Interface
+    Stringprep Interface
+    Utility Functions
+    List Interface
+    Dynamic List Interface
+    MIME Interface
+    Time Utility Functions
+    Logging Interface
+    Config File Interface
+SILC Key Repository Library
+    SILC SKR Interface
+SILC Application Utility Library
+    SILC Application Utilities
+    SILC ID Cache Interface
+SILC SFTP Library
+    SILC SFTP Interface
+    SFTP Filesystems Interface
+ +
+Resource Links +
+SILC Project Website
+SILC Protocol Documentation
+SILC White Paper
+SILC FAQs
+ +
+



+
+
+ + + + +
+
+ +Function silc_fsm_thread_alloc

+ + +SYNOPSIS + +

+    SilcFSMThread silc_fsm_thread_alloc(SilcFSM fsm,
+                                        void *thread_context,
+                                        SilcFSMThreadDestructor destructor,
+                                        void *destructor_context,
+                                        SilcBool real_thread);
+
+
+DESCRIPTION + +

+    Allocates FSM thread context.  The thread will be executed in the
+    FSM machine indicated by `fsm'.  The caller must free the returned
+    thread context with silc_fsm_free.  If the 'real_thread' is TRUE
+    then the thread will actually be executed in real thread, if platform
+    supports them.  The `thread_context' is delivered to every state
+    function in the thread.
+
+
+NOTES + +

+    If the system does not support threads, then this function will revert
+    back to normal FSM threads.
+
+    If the `real_thread' is TRUE then FSM will allocate new SilcSchedule
+    for the FSM thread. If you need scheduler in the real thread it is
+    strongly recommended that you use the SilcSchedule that is allocated
+    for the thread.  You can retrieve the SilcSchedule from the thread
+    using silc_fsm_get_schedule function.  Note that, the allocated
+    SilcSchedule will become invalid after the thread finishes.
+
+    If `real_thread' is FALSE the silc_fsm_get_schedule will return
+    the SilcSchedule that was originally given to silc_fsm_alloc or
+    silc_fsm_init.
+
+
+EXAMPLE + +

+    SILC_FSM_STATE(silc_foo_state)
+    {
+      SilcFSMThread thread;
+      ...
+
+      // Execute the route lookup in thread
+      thread = silc_fsm_thread_alloc(fsm, fsm_context, NULL, NULL, FALSE);
+      silc_fsm_start(thread, silc_route_lookup_start);
+
+      // Wait here for the thread to terminate. Set the state where to go
+      // after the thread has terminated.
+      silc_fsm_next(fsm, silc_foo_route_lookup_finished);
+      SILC_FSM_THREAD_WAIT(thread);
+    }
+
+
+



+
+
+ + + + +
+
+ +SILC Finite State Machine
+SilcFSM
+SilcFSMStruct
+SilcFSMThread
+SilcFSMThreadStruct
+SILC_FSM_CONTINUE
+SILC_FSM_YIELD
+SILC_FSM_WAIT
+SILC_FSM_FINISH
+SilcFSMDestructor
+SilcFSMThreadDestructor
+SILC_FSM_STATE
+SILC_FSM_CALL
+SILC_FSM_CALL_CONTINUE
+SILC_FSM_CALL_CONTINUE_SYNC
+SILC_FSM_THREAD_WAIT
+silc_fsm_alloc
+silc_fsm_init
+silc_fsm_thread_alloc
+silc_fsm_thread_init
+silc_fsm_free
+silc_fsm_start
+silc_fsm_start_sync
+silc_fsm_next
+silc_fsm_next_later
+silc_fsm_continue
+silc_fsm_continue_sync
+silc_fsm_finish
+silc_fsm_set_context
+silc_fsm_get_context
+silc_fsm_set_state_context
+silc_fsm_get_state_context
+silc_fsm_get_schedule
+silc_fsm_get_machine
+silc_fsm_is_started
+SilcFSMEvent
+SilcFSMEventStruct
+silc_fsm_event_alloc
+silc_fsm_event_init
+silc_fsm_event_free
+SILC_FSM_EVENT_WAIT
+SILC_FSM_EVENT_TIMEDWAIT
+SILC_FSM_EVENT_SIGNAL
+
+ +



+
+
+ + + +
+ + + + + + +
Copyright © 2001 - 2007 SILC Project
+ SILC Project Website
+ SILC Toolkit Reference Manual
+ Index
+ + +