The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Интерактивная система просмотра системных руководств (man-ов)

 ТемаНаборКатегория 
 
 [Cписок руководств | Печать]

g_cancel_event (9)
  • >> g_cancel_event (9) ( FreeBSD man: Ядро )

  • BSD mandoc
     

    NAME

    
    
    g_post_event
    
     
    g_waitfor_event
    
     
    g_cancel_event
    
     - GEOM events management
    
     
    

    SYNOPSIS

       #include <geom/geom.h>
    int g_post_event (g_event_t *func void *arg int flag ...);
    int g_waitfor_event (g_event_t *func void *arg int flag ...);
    void g_cancel_event (void *ref);
     

    DESCRIPTION

    The GEOM framework has its own event queue to inform classes about important events. The event queue can be also used by GEOM classes themselves, for example to work around some restrictions in the I/O path, where sleeping, heavy weight tasks, etc. are not permitted.

    The g_post_event ();
    function tells the GEOM framework to call function Fa func with argument Fa arg from the event queue. The Fa flag argument is passed to malloc(9) for memory allocations inside of g_post_event (.);
    The only allowed flags are M_WAITOK and M_NOWAIT The rest of the arguments are used as references to identify the event. An event can be canceled by using any of the given references as an argument to g_cancel_event (.);
    The list of references has to end with a NULL value.

    The g_waitfor_event ();
    function is a blocking version of the g_post_event ();
    function. It waits until the event is finished or canceled and then returns.

    The g_cancel_event ();
    function cancels all event(s) identified by Fa ref . Cancellation is equivalent to calling the requested function with requested arguments and argument Fa flag set to EV_CANCEL  

    RESTRICTIONS/CONDITIONS

    g_post_event (:);

    The argument
    Fa flag has to be M_WAITOK or M_NOWAIT
    The list of references has to end with a
    NULL value.

    g_waitfor_event (:);

    The argument
    Fa flag has to be M_WAITOK or M_NOWAIT
    The list of references has to end with a
    NULL value.
    The
    g_waitfor_event ();
    function cannot be called from an event, since doing so would result in a deadlock.

     

    RETURN VALUES

    The g_post_event ();
    and g_waitfor_event ();
    functions return 0 if successful; otherwise an error code is returned.  

    EXAMPLES

    Example of a function called from the event queue.
    void
    example_event(void *arg, int flag)
    {
    
            if (flag == EV_CANCEL) {
                    printf("Event with argument %p canceled.\n", arg);
                    return;
            }
    
            printf("Event with argument %p called.\n", arg);
    }
    
     

    ERRORS

    Possible errors for the g_post_event ();
    function:

    Bq Er ENOMEM
    The Fa flag argument was set to M_NOWAIT and there was insufficient memory.

    Possible errors for the g_waitfor_event ();
    function:

    Bq Er EAGAIN
    The event was canceled.
    Bq Er ENOMEM
    The Fa flag argument was set to M_NOWAIT and there was insufficient memory.

     

    SEE ALSO

    geom(4), DECLARE_GEOM_CLASS9, g_access9, g_attach9, g_bio9, g_consumer9, g_data9, g_geom9, g_provider9, g_provider_by_name9, g_wither_geom9  

    AUTHORS

    An -nosplit This manual page was written by An Pawel Jakub Dawidek Aq pjd@FreeBSD.org .


     

    Index

    NAME
    SYNOPSIS
    DESCRIPTION
    RESTRICTIONS/CONDITIONS
    RETURN VALUES
    EXAMPLES
    ERRORS
    SEE ALSO
    AUTHORS


    Поиск по тексту MAN-ов: 




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру