Files
flexnbd-c/src/client.h

45 lines
1.2 KiB
C
Raw Normal View History

#ifndef CLIENT_H
#define CLIENT_H
2012-06-22 10:05:41 +01:00
/** CLIENT_MAX_WAIT_SECS
* This is the length of time an inbound migration will wait for a fresh
* write before assuming the source has Gone Away. Note: it is *not*
* the time from one write to the next, it is the gap between the end of
* one write and the start of the next.
*/
#define CLIENT_MAX_WAIT_SECS 5
2012-06-08 18:03:41 +01:00
struct client {
/* When we call pthread_join, if the thread is already dead
* we can get an ESRCH. Since we have no other way to tell
* if that ESRCH is from a dead thread or a thread that never
* existed, we use a `stopped` flag to indicate a thread which
* did exist, but went away. Only check this after a
* pthread_join call.
*/
int stopped;
int socket;
int fileno;
char* mapped;
2012-06-07 11:44:19 +01:00
struct self_pipe * stop_signal;
struct server* serve; /* FIXME: remove above duplication */
2012-06-21 18:01:50 +01:00
/* Have we seen a REQUEST_ENTRUST message? */
int entrusted;
/* Have we seen a REQUEST_DISCONNECT message? */
int disconnect;
};
void* client_serve(void* client_uncast);
2012-06-07 11:44:19 +01:00
struct client * client_create( struct server * serve, int socket );
void client_destroy( struct client * client );
void client_signal_stop( struct client * client );
#endif