Source File modules/th/thread.h

    1    | #ifndef READ_THREAD
    2    | #define READ_THREAD
    3    |
    4    | /***************************************
    5    |   $Revision: 1.13 $
    6    |
    7    |   Thread module (th)
    8    |
    9    |   Status: NOT REVUED, NOT TESTED
    10   |
    11   |   ******************/ /******************
    12   |   Copyright (c) 1999                              RIPE NCC
    13   |
    14   |   All Rights Reserved
    15   |
    16   |   Permission to use, copy, modify, and distribute this software and its
    17   |   documentation for any purpose and without fee is hereby granted,
    18   |   provided that the above copyright notice appear in all copies and that
    19   |   both that copyright notice and this permission notice appear in
    20   |   supporting documentation, and that the name of the author not be
    21   |   used in advertising or publicity pertaining to distribution of the
    22   |   software without specific, written prior permission.
    23   |
    24   |   THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
    25   |   ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS; IN NO EVENT SHALL
    26   |   AUTHOR BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY
    27   |   DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
    28   |   AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
    29   |   OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
    30   |   ***************************************/
    31   | #include <pthread.h>       /* Posix thread library */
    32   |
    33   | typedef struct _rwlock {
    34   |   pthread_mutex_t rw_mutex;
    35   |   pthread_cond_t rw_cond;
    36   |   int rw_count;
    37   | } rw_lock_t;
    38   |
    39   | /*
    40   | typedef struct _wd_args_t {
    41   |   int connected_socket;
    42   |   pthread_t tid;
    43   | } wd_args_t;
    44   | */
    45   |
    46   | void TH_acquire_read_lock(rw_lock_t *prw_lock);
    47   | void TH_release_read_lock(rw_lock_t *prw_lock);
    48   | void TH_acquire_write_lock(rw_lock_t *prw_lock);
    49   | void TH_release_write_lock(rw_lock_t *prw_lock);
    50   | void TH_init_read_write_lock(rw_lock_t *prw_lock);
    51   | int TH_get_id(void);
    52   | char *TH_to_string(void);
    53   | pthread_t TH_create(void *do_function(void *), void *arguments );
    54   |
    55   | /*
    56   | void TH_hdl_signal(void);
    57   | void TH_watchdog(wd_args_t *wd_args);
    58   | void TH_run(int sock, void *do_function(void *));
    59   | void TH_run1(int sock, void *do_function(void *));
    60   | void TH_run2(void *function(void *));
    61   | */
    62   | #endif /* READ_THREAD */