[CRIU] [PATCH 1/2] libcriu: Add ability to request for notifications from service
Pavel Emelyanov
xemul at parallels.com
Thu Jun 26 01:11:30 PDT 2014
On 06/26/2014 12:05 PM, Andrew Vagin wrote:
> On Wed, Jun 25, 2014 at 07:36:14PM +0400, Pavel Emelyanov wrote:
>> This is achieved by supplying the callback. Every time a notification
>> arrives the callback is called. Return value of 0 means continue,
>> any other value aborst the request and the value is reported back
>> to the caller (from criu_dump/criu_restore calls).
>>
>> Signed-off-by: Pavel Emelyanov <xemul at parallels.com>
>> ---
>> lib/criu.c | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++------
>> lib/criu.h | 1 +
>> 2 files changed, 52 insertions(+), 6 deletions(-)
>>
>> diff --git a/lib/criu.c b/lib/criu.c
>> index 4b1be8a..a827671 100644
>> --- a/lib/criu.c
>> +++ b/lib/criu.c
>> @@ -19,6 +19,7 @@ const char *criu_lib_version = CRIU_VERSION;
>>
>> static char *service_address = CR_DEFAULT_SERVICE_ADDRESS;
>> static CriuOpts *opts;
>> +static int (*notify)(char *action);
>> static int saved_errno;
>>
>> void criu_set_service_address(char *path)
>> @@ -31,8 +32,10 @@ void criu_set_service_address(char *path)
>>
>> int criu_init_opts(void)
>> {
>> - if (opts)
>> + if (opts) {
>> + notify = NULL;
>> criu_opts__free_unpacked(opts, NULL);
>> + }
>>
>> opts = malloc(sizeof(CriuOpts));
>> if (opts == NULL) {
>> @@ -44,6 +47,13 @@ int criu_init_opts(void)
>> return 0;
>> }
>>
>> +void criu_set_notify(int (*cb)(char *action))
>
> I wourld prefer to get pid in callbacks.
So would I. Any ideas how to make this in non-ugly manner? Pid is
only available in one action.
Thanks,
Pavel
More information about the CRIU
mailing list