コード例 #1
0
ファイル: queue.c プロジェクト: rymanluk/bluez
void queue_foreach(struct queue *queue, queue_foreach_func_t function,
							void *user_data)
{
	struct queue_entry *entry;

	if (!queue || !function)
		return;

	entry = queue->head;
	if (!entry)
		return;

	queue_ref(queue);
	while (entry && queue->head && queue->ref_count > 1) {
		struct queue_entry *next;

		queue_entry_ref(entry);

		function(entry->data, user_data);

		next = entry->next;

		queue_entry_unref(entry);

		entry = next;
	}
	queue_unref(queue);
}
コード例 #2
0
ファイル: queue.c プロジェクト: DgFutureLab/blePi
void queue_foreach(struct queue *queue, queue_foreach_func_t function,
							void *user_data)
{
	struct queue_entry *entry;

	if (!queue || !function)
		return;

	entry = queue->head;
	if (!entry)
		return;

	queue_ref(queue);
	while (entry && queue->ref_count > 1) {
		struct queue_entry *tmp = entry;

		entry = tmp->next;

		function(tmp->data, user_data);

		if (!queue_find_entry(queue, entry))
			break;
	}
	queue_unref(queue);
}
コード例 #3
0
ファイル: queue.c プロジェクト: rymanluk/bluez
void queue_destroy(struct queue *queue, queue_destroy_func_t destroy)
{
	if (!queue)
		return;

	queue_remove_all(queue, NULL, NULL, destroy);

	queue_unref(queue);
}