Namespace

Dex – 1

A GNOME library for deferred execution

Version0.7.0
AuthorsChristian Hergert
LicenseLGPL-2.1-or-later
Websitehttps://gitlab.gnome.org/GNOME/libdex/
Sourcehttps://gitlab.gnome.org/GNOME/libdex/

Build

C headerslibdex.h
pkg-config fileslibdex-1

Dependencies

GLib—2.0 The base type system library
Browse documentation
GObject—2.0 The base type system library
Browse documentation

Additional documentation

Classes

AsyncPair

AsyncResult

DexAsyncResult is used to integrate a DexFuture with GAsyncResult.

Block

DexBlock represents a callback closure that can be scheduled to run within a specific GMainContext.

Cancellable

DexCancellable is a simple cancellation primitive which allows for you to create DexFuture that will reject upon cancellation.

Channel

Delayed

DexDelayed is a future which will resolve or reject the value of another DexFuture when dex_delayed_release() is called.

Fiber

DexFiber is a fiber (or coroutine) which itself is a DexFuture.

Future

DexFuture is the base class representing a future which may resolve with a value or reject with error at some point in the future.

FutureSet

DexFutureSet represents a set of DexFuture.

MainScheduler

DexMainScheduler is the scheduler used on the default thread of an application. It is meant to integrate with your main loop.

Object

DexObject is the basic building block of types defined within libdex. Futures, Schedulers, and Channels all inherit from DexObject which provides features like thread-safe weak pointers and memory management operations.

Promise

DexPromise is a convenient DexFuture for prpoagating a result or rejection in appliction and library code.

Scheduler

DexScheduler is the base class used by schedulers.

StaticFuture

DexStaticFuture represents a future that is resolved from the initial state.

ThreadPoolScheduler

DexThreadPoolScheduler is a DexScheduler that will dispatch work items and fibers to sub-schedulers on a specific operating system thread.

Timeout

DexTimeout is a DexFuture that will resolve after the configured period of time.

UnixSignal

DexUnixSignal is a DexFuture that will resolve when a specific unix signal has been received.

Enumerations

Error Domains

Callbacks

FiberFunc

This function prototype is used for spawning fibers. A fiber is a lightweight, cooperative-multitasking feature where the fiber is given it’s own stack. The fiber runs until it reaches a point of suspension (using dex_await or similar) or exits the fiber.

FutureCallback

A DexFutureCallback can be executed from a DexBlock as response to another DexFuture resolving or rejecting.

SchedulerFunc

Functions

aio_read

An asynchronous pread() wrapper.

aio_write

An asynchronous pwrite() wrapper.

bus_get

Wrapper for g_bus_get().

since: 0.4

dbus_connection_call

Wrapper for g_dbus_connection_call().

since: 0.4

dbus_connection_call_with_unix_fd_list

Wrapper for g_dbus_connection_call_with_unix_fd_list().

since: 0.4

dbus_connection_send_message_with_reply

Wrapper for g_dbus_connection_send_message_with_reply().

since: 0.4

error_quark

file_copy

Asynchronously copies a file and returns a DexFuture which can be observed for the result.

file_enumerate_children

file_enumerator_next_files

file_load_contents_bytes

file_make_directory

Asynchronously creates a directory and returns DexFuture which can be observed for the result.

file_query_exists

Queries to see if file exists asynchronously.

since: 0.6

file_query_info

file_read

Asynchronously opens a file for reading.

file_replace

get_min_stack_size

get_page_size

init

input_stream_close

input_stream_read

input_stream_read_bytes

input_stream_skip

io_stream_close

output_stream_close

output_stream_splice

output_stream_write

output_stream_write_bytes

resolver_lookup_by_name

socket_client_connect

socket_listener_accept

subprocess_wait_check

Creates a future that awaits for subprocess to complete using g_subprocess_wait_check_async().

since: 0.4

value_get_object

Retrieves the DexObject stored inside the given value.

since: 0.4

value_set_object

Stores the given DexObject inside value.

since: 0.4

value_take_object

Stores the given DexObject inside value.

since: 0.4