This module contains API functions to handle SVM schedulers.  
More...
|  | 
| SVM_FUNCTION SVM_Scheduler | svm_scheduler_get (const void *svm, const SVM_Value_PluginEntryPoint name) | 
|  | This function retrieves a scheduler from its name.  More... 
 | 
|  | 
| SVM_FUNCTION SVM_Scheduler | svm_scheduler_get_current (const void *svm) | 
|  | This function retrieves the current scheduler.  More... 
 | 
|  | 
| SVM_FUNCTION void * | svm_scheduler_get_internal (const void *svm, const SVM_Scheduler scheduler) | 
|  | This function extracts the internal structure of a scheduler.  More... 
 | 
|  | 
| SVM_FUNCTION SVM_String | svm_scheduler_print (const void *svm, const SVM_Scheduler scheduler) | 
|  | This function returns a string representation of the state of a scheduler.  More... 
 | 
|  | 
| SVM_FUNCTION SVM_Boolean | svm_scheduler_process_attach (const void *svm, const SVM_Scheduler scheduler, const SVM_Process process, const SVM_Value_Integer parameter) | 
|  | This function attaches a process to a scheduler with an integer value parameter.  More... 
 | 
|  | 
| SVM_FUNCTION SVM_Boolean | svm_scheduler_process_attach__raw (const void *svm, const SVM_Scheduler scheduler, const SVM_Process process, const unsigned long int parameter) | 
|  | This function attaches a process to a scheduler with a raw integer parameter.  More... 
 | 
|  | 
| SVM_FUNCTION SVM_Boolean | svm_scheduler_process_detach (const void *svm, const SVM_Scheduler scheduler, const SVM_Process process, const SVM_Value_Integer parameter) | 
|  | This function detaches a process from a scheduler with an integer value parameter.  More... 
 | 
|  | 
| SVM_FUNCTION SVM_Boolean | svm_scheduler_process_detach__raw (const void *svm, const SVM_Scheduler scheduler, const SVM_Process process, const unsigned long int parameter) | 
|  | This function detaches a process from a scheduler with a raw integer parameter.  More... 
 | 
|  | 
| SVM_FUNCTION void | svm_scheduler_notify (const void *svm, const SVM_Scheduler scheduler, const SVM_Value_Integer parameter) | 
|  | This function sends a notification to a scheduler with an integer value parameter.  More... 
 | 
|  | 
| SVM_FUNCTION void | svm_scheduler_notify__raw (const void *svm, const SVM_Scheduler scheduler, const unsigned long int parameter) | 
|  | This function sends a notification to a scheduler with a raw integer parameter.  More... 
 | 
|  | 
This module contains API functions to handle SVM schedulers. 
A scheduler is a dedicated orchestrator thread controlling process execution.
Schedulers work by reacting to some events they receive from processes.
- Note
- Schedulers do not manage the execution sequence of kernels within a process. This specific orchestration is managed by sequencers.
- See also
- SVM processes 
- 
SVM process sequencer 
◆ svm_scheduler_get()
This function retrieves a scheduler from its name. 
- Parameters
- 
  
    | [in] | svm | The SVM pointer passed as first argument of the callback function. |  | [in] | name | The scheduler name. |  
 
- Note
- If parameter name is NULL, the default scheduler is returned.
- Returns
- The scheduler.
- Exceptions
- 
  
    | FAILURE | interruption when a parameter is incorrect. (Please refer to the main description page of this API.) |  | FAILURE | interruption when the name is not associated to a scheduler. |  
 
 
 
◆ svm_scheduler_get_current()
This function retrieves the current scheduler. 
- Parameters
- 
  
    | [in] | svm | The SVM pointer passed as first argument of the callback function. |  
 
- Returns
- The current scheduler, or a NULL pointer when outside a scheduler context.
- Exceptions
- 
  
    | FAILURE | interruption when a parameter is incorrect. (Please refer to the main description page of this API.) |  
 
 
 
◆ svm_scheduler_get_internal()
This function extracts the internal structure of a scheduler. 
- Parameters
- 
  
    | [in] | svm | The SVM pointer passed as first argument of the callback function. |  | [in] | scheduler | The scheduler from which the internal structure is extracted. |  
 
- Note
- When this API function is used on a scheduler, synchronisation mechanisms have to be put in place to protect concurrent access to this structure.
- Returns
- The internal structure pointer.
- Exceptions
- 
  
    | FAILURE | interruption when a parameter is incorrect. (Please refer to the main description page of this API.) |  
 
 
 
◆ svm_scheduler_notify()
This function sends a notification to a scheduler with an integer value parameter. 
- Parameters
- 
  
    | [in] | svm | The SVM pointer passed as first argument of the callback function. |  | [in] | scheduler | The scheduler to notify. |  | [in] | parameter | A parameter. |  
 
- Note
- If the scheduler does not support notifications, the notification is silently discarded.
- Exceptions
- 
  
    | FAILURE | interruption when a parameter is incorrect. (Please refer to the main description page of this API.) |  
 
 
 
◆ svm_scheduler_notify__raw()
      
        
          | SVM_FUNCTION void svm_scheduler_notify__raw | ( | const void * | svm, | 
        
          |  |  | const SVM_Scheduler | scheduler, | 
        
          |  |  | const unsigned long int | parameter | 
        
          |  | ) |  |  | 
      
 
This function sends a notification to a scheduler with a raw integer parameter. 
- Parameters
- 
  
    | [in] | svm | The SVM pointer passed as first argument of the callback function. |  | [in] | scheduler | The scheduler to notify. |  | [in] | parameter | A parameter. |  
 
- Note
- If the scheduler does not support notifications, the notification is silently discarded.
- Exceptions
- 
  
    | FAILURE | interruption when a parameter is incorrect. (Please refer to the main description page of this API.) |  
 
 
 
◆ svm_scheduler_print()
This function returns a string representation of the state of a scheduler. 
- Parameters
- 
  
    | [in] | svm | The SVM pointer passed as first argument of the callback function. |  | [in] | scheduler | The scheduler from which the status will be extracted. |  
 
- Returns
- A SVM_String containing a representation of the scheduler state.
- Exceptions
- 
  
    | FAILURE | interruption when a parameter is incorrect. (Please refer to the main description page of this API.) |  
 
 
 
◆ svm_scheduler_process_attach()
This function attaches a process to a scheduler with an integer value parameter. 
- Parameters
- 
  
    | [in] | svm | The SVM pointer passed as first argument of the callback function. |  | [in] | scheduler | The receiving scheduler. |  | [in] | process | The process to be attached. |  | [in] | parameter | A parameter. |  
 
The parameter is passed to the scheduler plugin callback attaching the process.
- Note
- When the attach operation fails on a newly created process and the process variable is kept local, the process remains in the system. This dangling process should be unlocked then terminated.
- Returns
- TRUE if the process has been attached, FALSE otherwise.
- Exceptions
- 
  
    | FAILURE | interruption when a parameter is incorrect. (Please refer to the main description page of this API.) |  | FAILURE | interruption when the process is not ours or is not a process locked by ours. |  | FAILURE | interruption when the API function is called outside a process. |  
 
- See also
- svm_process_ownership_lock 
- 
svm_process_get_current 
- 
svm_process_terminate 
- 
svm_scheduler_get 
 
 
◆ svm_scheduler_process_attach__raw()
This function attaches a process to a scheduler with a raw integer parameter. 
- Parameters
- 
  
    | [in] | svm | The SVM pointer passed as first argument of the callback function. |  | [in] | scheduler | The receiving scheduler. |  | [in] | process | The process to be attached. |  | [in] | parameter | A parameter. |  
 
The parameter is passed to the scheduler plugin callback attaching the process.
- Note
- When the attach operation fails on a newly created process and the process variable is kept local, the process remains in the system. This dangling process should be unlocked then terminated.
- Returns
- TRUE if the process has been attached, FALSE otherwise.
- Exceptions
- 
  
    | FAILURE | interruption when a parameter is incorrect. (Please refer to the main description page of this API.) |  | FAILURE | interruption when the process is not ours or is not a process locked by ours. |  | FAILURE | interruption when the API function is called outside a process. |  
 
- See also
- svm_process_ownership_lock 
- 
svm_process_get_current 
- 
svm_process_terminate 
- 
svm_scheduler_get 
 
 
◆ svm_scheduler_process_detach()
This function detaches a process from a scheduler with an integer value parameter. 
- Parameters
- 
  
    | [in] | svm | The SVM pointer passed as first argument of the callback function. |  | [in] | scheduler | The giving scheduler. |  | [in] | process | The process to be detached. |  | [in] | parameter | A parameter. |  
 
The parameter is passed to the scheduler plugin callback detaching the process.
- Note
- When the detach operation succeeds on a process and the process variable is kept local, the process remains in the system. This dangling process should be unlocked then terminated.
- Returns
- TRUE if the process has been detached, FALSE otherwise.
- Exceptions
- 
  
    | FAILURE | interruption when a parameter is incorrect. (Please refer to the main description page of this API.) |  | FAILURE | interruption when the process is not ours or is not a process locked by ours. |  | FAILURE | interruption when the API function is called outside a process. |  
 
- See also
- svm_process_ownership_lock 
- 
svm_process_get_current 
- 
svm_process_terminate 
- 
svm_scheduler_get 
 
 
◆ svm_scheduler_process_detach__raw()
This function detaches a process from a scheduler with a raw integer parameter. 
- Parameters
- 
  
    | [in] | svm | The SVM pointer passed as first argument of the callback function. |  | [in] | scheduler | The giving scheduler. |  | [in] | process | The process to be detached. |  | [in] | parameter | A parameter. |  
 
The parameter is passed to the scheduler plugin callback detaching the process.
- Note
- When the detach operation succeeds on a process and the process variable is kept local, the process remains in the system. This dangling process should be unlocked then terminated.
- Returns
- TRUE if the process has been detached, FALSE otherwise.
- Exceptions
- 
  
    | FAILURE | interruption when a parameter is incorrect. (Please refer to the main description page of this API.) |  | FAILURE | interruption when the process is not ours or is not a process locked by ours. |  | FAILURE | interruption when the API function is called outside a process. |  
 
- See also
- svm_process_ownership_lock 
- 
svm_process_get_current 
- 
svm_process_terminate 
- 
svm_scheduler_get