diff mbox

[19/23] migration: Export a function that tells if the migration has finished correctly

Message ID 808d7f54a5742f34d467a6293f6fff8fefbc6d15.1316782367.git.quintela@redhat.com
State New
Headers show

Commit Message

Juan Quintela Sept. 23, 2011, 12:57 p.m. UTC
This will allows us to hide the status values.

Signed-off-by: Juan Quintela <quintela@redhat.com>
---
 migration.c     |    4 ++--
 migration.h     |    2 +-
 ui/spice-core.c |    4 +---
 3 files changed, 4 insertions(+), 6 deletions(-)

Comments

Anthony Liguori Oct. 4, 2011, 2:31 p.m. UTC | #1
On 09/23/2011 07:57 AM, Juan Quintela wrote:
> This will allows us to hide the status values.
>
> Signed-off-by: Juan Quintela<quintela@redhat.com>
> ---
>   migration.c     |    4 ++--
>   migration.h     |    2 +-
>   ui/spice-core.c |    4 +---
>   3 files changed, 4 insertions(+), 6 deletions(-)
>
> diff --git a/migration.c b/migration.c
> index ea50a6f..580f546 100644
> --- a/migration.c
> +++ b/migration.c
> @@ -358,9 +358,9 @@ void remove_migration_state_change_notifier(Notifier *notify)
>       notifier_list_remove(&migration_state_notifiers, notify);
>   }
>
> -int get_migration_state(void)
> +bool migration_has_finished(void)
>   {
> -    return current_migration->state;
> +    return current_migration->state == MIG_STATE_COMPLETED;
>   }
>
>   void migrate_fd_connect(MigrationState *s)
> diff --git a/migration.h b/migration.h
> index f1a7452..6641a26 100644
> --- a/migration.h
> +++ b/migration.h
> @@ -84,7 +84,7 @@ void migrate_fd_connect(MigrationState *s);
>
>   void add_migration_state_change_notifier(Notifier *notify);
>   void remove_migration_state_change_notifier(Notifier *notify);
> -int get_migration_state(void);
> +bool migration_has_finished(void);
>
>   uint64_t ram_bytes_remaining(void);
>   uint64_t ram_bytes_transferred(void);
> diff --git a/ui/spice-core.c b/ui/spice-core.c
> index 3cbc721..1202993 100644
> --- a/ui/spice-core.c
> +++ b/ui/spice-core.c
> @@ -447,9 +447,7 @@ void do_info_spice(Monitor *mon, QObject **ret_data)
>
>   static void migration_state_notifier(Notifier *notifier, void *data)
>   {
> -    int state = get_migration_state();
> -
> -    if (state == MIG_STATE_COMPLETED) {
> +    if (migration_has_finished()) {
>   #if SPICE_SERVER_VERSION>= 0x000701 /* 0.7.1 */
>           spice_server_migrate_switch(spice_server);
>   #endif

I think the bug here is migration_state_notifier.  It should take an additional 
argument of MigrationState.  Otherwise, how does this code work with FT?

Regards,

Anthony Liguori
Juan Quintela Oct. 5, 2011, 12:24 p.m. UTC | #2
Anthony Liguori <anthony@codemonkey.ws> wrote:
> On 09/23/2011 07:57 AM, Juan Quintela wrote:
>> This will allows us to hide the status values.
>>
>> --- a/ui/spice-core.c
>> +++ b/ui/spice-core.c
>> @@ -447,9 +447,7 @@ void do_info_spice(Monitor *mon, QObject **ret_data)
>>
>>   static void migration_state_notifier(Notifier *notifier, void *data)
>>   {
>> -    int state = get_migration_state();
>> -
>> -    if (state == MIG_STATE_COMPLETED) {
>> +    if (migration_has_finished()) {
>>   #if SPICE_SERVER_VERSION>= 0x000701 /* 0.7.1 */
>>           spice_server_migrate_switch(spice_server);
>>   #endif
>
> I think the bug here is migration_state_notifier.  It should take an
> additional argument of MigrationState.  Otherwise, how does this code
> work with FT?

Thinking about it, we need to pass MigrationState and export the
function that see if migration has finished (otherwise we also need to
export all STATE definitions, or worse, the whole MigrationState
definition.

Moving to have a function

bool migration_has_finished(MIgrationState *s);

That does the obvious thing.

What do you think?

Later, Juan.
Anthony Liguori Oct. 5, 2011, 2:58 p.m. UTC | #3
On 10/05/2011 07:24 AM, Juan Quintela wrote:
> Anthony Liguori<anthony@codemonkey.ws>  wrote:
>> On 09/23/2011 07:57 AM, Juan Quintela wrote:
>>> This will allows us to hide the status values.
>>>
>>> --- a/ui/spice-core.c
>>> +++ b/ui/spice-core.c
>>> @@ -447,9 +447,7 @@ void do_info_spice(Monitor *mon, QObject **ret_data)
>>>
>>>    static void migration_state_notifier(Notifier *notifier, void *data)
>>>    {
>>> -    int state = get_migration_state();
>>> -
>>> -    if (state == MIG_STATE_COMPLETED) {
>>> +    if (migration_has_finished()) {
>>>    #if SPICE_SERVER_VERSION>= 0x000701 /* 0.7.1 */
>>>            spice_server_migrate_switch(spice_server);
>>>    #endif
>>
>> I think the bug here is migration_state_notifier.  It should take an
>> additional argument of MigrationState.  Otherwise, how does this code
>> work with FT?
>
> Thinking about it, we need to pass MigrationState and export the
> function that see if migration has finished (otherwise we also need to
> export all STATE definitions, or worse, the whole MigrationState
> definition.
>
> Moving to have a function
>
> bool migration_has_finished(MIgrationState *s);
>
> That does the obvious thing.
>
> What do you think?

Yeah, that was what I was advocating.

Regards,

Anthony Liguori

>
> Later, Juan.
diff mbox

Patch

diff --git a/migration.c b/migration.c
index ea50a6f..580f546 100644
--- a/migration.c
+++ b/migration.c
@@ -358,9 +358,9 @@  void remove_migration_state_change_notifier(Notifier *notify)
     notifier_list_remove(&migration_state_notifiers, notify);
 }

-int get_migration_state(void)
+bool migration_has_finished(void)
 {
-    return current_migration->state;
+    return current_migration->state == MIG_STATE_COMPLETED;
 }

 void migrate_fd_connect(MigrationState *s)
diff --git a/migration.h b/migration.h
index f1a7452..6641a26 100644
--- a/migration.h
+++ b/migration.h
@@ -84,7 +84,7 @@  void migrate_fd_connect(MigrationState *s);

 void add_migration_state_change_notifier(Notifier *notify);
 void remove_migration_state_change_notifier(Notifier *notify);
-int get_migration_state(void);
+bool migration_has_finished(void);

 uint64_t ram_bytes_remaining(void);
 uint64_t ram_bytes_transferred(void);
diff --git a/ui/spice-core.c b/ui/spice-core.c
index 3cbc721..1202993 100644
--- a/ui/spice-core.c
+++ b/ui/spice-core.c
@@ -447,9 +447,7 @@  void do_info_spice(Monitor *mon, QObject **ret_data)

 static void migration_state_notifier(Notifier *notifier, void *data)
 {
-    int state = get_migration_state();
-
-    if (state == MIG_STATE_COMPLETED) {
+    if (migration_has_finished()) {
 #if SPICE_SERVER_VERSION >= 0x000701 /* 0.7.1 */
         spice_server_migrate_switch(spice_server);
 #endif