I think the problem is, that you only work on the malloc'ed memory locally within the function.
You give add_client a pointer of type client. This is given by call by value, i.e. assigning the pointer a newly malloc'ed memory will not assign this memory to the pointer in the main function! Therefore your client *current is pointing to an undefined memory location even after call of add_client.
Better do this:
Furthermore: What are you willing to achieve with:
head = current;
current = head
?
i have a linked list set up like
typedef struct client_list {
char *client_name;
int client_socket_fd;
struct client_list *next;
} client;
client *client_list=NULL;
before adding to the list i check if it already exists, only if it does not then i add
if (client_list==NULL... (1 Reply)
can someone provide an example of a struct linked list, where it has strings as its values, and then how do I check if a specific string (say called buffer) exists in the list of structs?
i dont understand how to make a copy of it to check with
this is what i have
... (0 Replies)
Hi, I am programming in kernel, and I want to use a double linked list that holds infos that every process could access and modify THIS list. So, I suppose it is a 'global' variable since every process(thread) can reach it, I am wondering where to put it? by changing some of the kernel files? (1 Reply)
Program to reverse a linked list by traversing only once. (1 Reply)
Discussion started by: VSSajjan
1 Replies
LEARN ABOUT DEBIAN
gearman_client_set_workload_fn
GEARMAN_CLIENT_SET_WORKLOAD_FN(3) Gearmand GEARMAN_CLIENT_SET_WORKLOAD_FN(3)NAME
gearman_client_set_workload_fn - Gearmand Documentation, http://gearman.info/
SYNOPSIS
#include <libgearman/gearman.h>
gearman_client_st
gearman_task_context_free_fn
int gearman_client_timeout(gearman_client_st *client)
void gearman_client_set_timeout(gearman_client_st *client, int timeout)
void *gearman_client_context(const gearman_client_st *client)
void gearman_client_set_context(gearman_client_st *client, void *context)
void gearman_client_set_workload_malloc_fn(gearman_client_st *client, gearman_malloc_fn *function, void *context)
Deprecated since version 0.23: Use gearman_allocator_t
void gearman_client_set_workload_free_fn(gearman_client_st *client, gearman_free_fn *function, void *context)
Deprecated since version 0.23: Use gearman_allocator_t
void gearman_client_task_free_all(gearman_client_st *client)
void gearman_client_set_task_context_free_fn(gearman_client_st *client, gearman_task_context_free_fn *function)
Link with -lgearman
DESCRIPTION
gearman_client_st is used for client communication with the server.
gearman_client_context() and gearman_client_set_context() can be used to store an arbitrary object for the user.
gearman_client_set_task_context_free_fn() sets a trigger that will be called when a gearman_task_st is released.
gearman_client_timeout() and gearman_client_set_timeout() get and set the current timeout value, in milliseconds, for the client.
Normally malloc(3) and free(3) are used for allocation and releasing workloads. gearman_client_set_workload_malloc_fn() and
gearman_client_set_workload_free_fn() can be used to replace these with custom functions. (These have been deprecated, please see gear-
man_allocator_t for the updated interface.
gearman_client_task_free_all() is used to free all current gearman_task_st that have been created with the gearman_client_st.
Warning
By calling gearman_client_task_free_all() you can end up with a SEGFAULT if you try to use any gearman_task_st that you have kept
pointers too.
RETURN VALUE
gearman_client_timeout() returns an integer representing the amount of time in milliseconds. A value of -1 means an infinite timeout value.
See poll(3) for more details.
HOME
To find out more information please check: http://gearman.info/
See also
gearmand(8)libgearman(3)gearman_client_create(3)AUTHOR
Data Differential http://www.datadifferential.com/
COPYRIGHT
2012, Data Differential, http://www.datadifferential.com/
0.33 May 04, 2012 GEARMAN_CLIENT_SET_WORKLOAD_FN(3)