Useful thread function to use in GThreadPool.
Data Structures |
struct | cr_CompressionTask |
struct | cr_RepomdRecordFillTask |
Functions |
cr_CompressionTask * | cr_compressiontask_new (const char *src, const char *dst, cr_CompressionType compression_type, cr_ChecksumType checksum_type, int delsrc, GError **err) |
void | cr_compressiontask_free (cr_CompressionTask *task, GError **err) |
void | cr_compressing_thread (gpointer data, gpointer user_data) |
cr_RepomdRecordFillTask * | cr_repomdrecordfilltask_new (cr_RepomdRecord *record, cr_ChecksumType checksum_type, GError **err) |
void | cr_repomdrecordfilltask_free (cr_RepomdRecordFillTask *task, GError **err) |
void | cr_repomd_record_fill_thread (gpointer data, gpointer user_data) |
Detailed Description
Paralelized compression example:
cr_CompressionTask *task_1, *task_2;
GThreadPool *pool;
task_1 = cr_compressiontask_new("foo", "foo.gz", CR_CW_GZ_COMPRESSION, 1,
CR_CHECKSUM_SHA256, NULL);
task_2 = cr_compressiontask_new("bar", "bar.gz", CR_CW_GZ_COMPRESSION, 1,
CR_CHECKSUM_SHA512, NULL);
pool = g_thread_pool_new(cr_compressing_thread, NULL, 2, FALSE, NULL);
g_thread_pool_push(pool, task_1, NULL);
g_thread_pool_push(pool, task_2, NULL);
g_thread_pool_free(pool, FALSE, TRUE);
cr_compressiontask_free(task_1, NULL);
cr_compressiontask_free(task_2, NULL);
Function Documentation
void cr_compressing_thread |
( |
gpointer |
data, |
|
|
gpointer |
user_data | |
|
) |
| | |
Function for GThreadPool.
Function to prepare a new cr_CompressionTask.
- Parameters:
-
| src | Source filename. |
| dst | Destination filename or NULL (then src+compression suffix will be used). |
| compression_type | Type of compression to use. |
| checksum_type | Checksum type for stat calculation. Note: Stat is always use. If you don't need a stats use CR_CHECKSUM_UNKNOWN, then no checksum calculation will be performed, only size would be calculated. Don't be afraid, size calculation has almost no overhead. |
| delsrc | Delete src after successuful compression. 0 = Do not delete, delete otherwise |
| err | GError **. Note: This is a GError for the cr_compresiontask_new function. The GError that will be at created cr_CompressionTask is different. |
- Returns:
- New cr_CompressionTask.
void cr_repomd_record_fill_thread |
( |
gpointer |
data, |
|
|
gpointer |
user_data | |
|
) |
| | |
Function for GThread Pool.