26 #include <sys/types.h>
30 #include <netinet/in.h>
41 #include <freetds/dlist.h>
46 #define MAX_POOL_USERS 1024
66 TDS_POOL_EXECUTE execute;
79 DLIST_FIELDS(dlist_user_item);
81 TDS_USER_STATE user_state;
88 DLIST_FIELDS(dlist_member_item);
94 #define DLIST_NAME(suffix) dlist_member_ ## suffix
95 #define DLIST_LIST_TYPE dlist_members
96 #define DLIST_TYPE TDS_POOL_MEMBER
97 #include <freetds/dlist.tmpl.h>
99 #define DLIST_NAME(suffix) dlist_user_ ## suffix
100 #define DLIST_LIST_TYPE dlist_users
101 #define DLIST_TYPE TDS_POOL_USER
102 #include <freetds/dlist.tmpl.h>
115 tds_mutex events_mtx;
116 TDS_SYS_SOCKET listen_fd;
117 TDS_SYS_SOCKET wakeup_fd;
118 TDS_SYS_SOCKET event_fd;
121 int num_active_members;
122 dlist_members active_members;
123 dlist_members idle_members;
131 unsigned long user_logins;
132 unsigned long member_logins;
138 void pool_process_members(
TDS_POOL * pool, fd_set * rfds, fd_set * wfds);
140 void pool_mbr_init(
TDS_POOL * pool);
141 void pool_mbr_destroy(
TDS_POOL * pool);
149 void pool_process_users(
TDS_POOL * pool, fd_set * rfds, fd_set * wfds);
150 void pool_user_init(
TDS_POOL * pool);
151 void pool_user_destroy(
TDS_POOL * pool);
161 int pool_write(TDS_SYS_SOCKET sock,
const void *buf,
size_t len);
165 int pool_read_conf_file(
const char *poolname,
TDS_POOL * pool,
char **err);
Information for a server connection.
Definition: tds.h:1168
Main include file for libtds.
dlist_users waiters
users in wait state
Definition: pool.h:126