# Logging
+ # Mutex functions
+ i_mutex_t m = i_mutex_new();
+ i_mutex_destroy(m);
+ i_mutex_lock(m);
+ i_mutex_unlock(m);
+
# Paletted images
# Tags
From: File log.c
+=back
+
+=head2 Mutex functions
+
+=over
+
+=item i_mutex_new()
+
+ i_mutex_t m = i_mutex_new();
+
+Create a mutex.
+
+If a critical section cannot be created for whatever reason, Imager
+will abort.
+
+
+=for comment
+From: File mutexwin.c
+
+=item i_mutex_destroy(m)
+
+ i_mutex_destroy(m);
+
+Destroy a mutex.
+
+
+=for comment
+From: File mutexwin.c
+
+=item i_mutex_lock(m)
+
+ i_mutex_lock(m);
+
+Lock the mutex, waiting if another thread has the mutex locked.
+
+
+=for comment
+From: File mutexwin.c
+
+=item i_mutex_unlock(m)
+
+ i_mutex_unlock(m);
+
+Release the mutex.
+
+The behavior of releasing a mutex you don't hold is unspecified.
+
+
+=for comment
+From: File mutexwin.c
+
+
=back
=head2 Paletted images
=for comment
From: File io.c
+=item im_context_refdec(ctx, where)
+X<im_context_refdec API>
+=section Context objects
+
+ im_context_refdec(aIMCTX, "a description");
+
+Remove a reference to the context, releasing it if all references have
+been removed.
+
+
+=for comment
+From: File context.c
+
+=item im_context_refinc(ctx, where)
+X<im_context_refinc API>
+=section Context objects
+
+ im_context_refinc(aIMCTX, "a description");
+
+Add a new reference to the context.
+
+
+=for comment
+From: File context.c
+
=item im_errors(ctx)
i_errmsg *errors = im_errors(aIMCTX);
=item *
-B<im_context_refdec>
-
-=item *
-
-B<im_context_refinc>
-
-=item *
-
B<im_lhead>
=item *