void * searcher() { sem_wait(&read_sem); int val = rand()%100; printf("search for %d, result: %d\n", val, search_by_value(list, val)); print_list(list); sem_post(&read_sem); return NULL; }
extern gdsl_element_t gdsl_queue_search (const gdsl_queue_t queue, gdsl_compare_func_t f, void* value) { _gdsl_node_t n; assert (queue != NULL); assert (f != NULL); n = search_by_value (queue, f, value); return (n == NULL) ? NULL : _gdsl_node_get_content (n); }
int main() { list_element* root = create_new_element(-1); list_element* new_elem; int i; for(i = 0; i < 10; i++) { new_elem = create_new_element(i); insert_into_list(new_elem, root); } print_list(root); int value = 10; if( search_by_value(root, value) == 0 ) { printf("Value %d exists in the list\n", value); } else { printf("There is no value %d in the list\n", value); } return 0; }