You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Sync images works by setting up asynchronous receivers for each image in the sync set.
Next all images check the image status of all other images participating in the sync.
Then each image sends a zero int or the stopped image special code to all other images
in the sync set. At last all images wait for the asynchronous receivers to get their data.
The race here was, that an image could be in the waiting phase while the stopped image
had not set its status correctly yet. The waiting image did not return then, because it
never got the stopped image code from the stopped image. To solve this two changes had
to be made:
1. caf_finalize() now calls sync_image_internal ()
2. After waiting sync_image_internal() checks the status of the image, that send its data,
again.
sync_image() has be renamed to sync_image_internal(). A flag was added to distinguish
calls to sync_image_internal() from caf_finalize and regular sync image calls. The latter
shall report an error on failure, while the former keeps silent.
This commit fixes the timeout of syncimage_status.f90 mentioned in #298.
0 commit comments