Raise exception in Python if wait is called with duplicate object IDs. (#262)

This commit is contained in:
Robert Nishihara
2017-02-09 23:32:19 -08:00
committed by Philipp Moritz
parent 0aa234fb9c
commit 249b667b0e
3 changed files with 11 additions and 1 deletions
+6
View File
@@ -260,6 +260,8 @@ class PlasmaClient(object):
def wait(self, object_ids, timeout=PLASMA_WAIT_TIMEOUT, num_returns=1):
"""Wait until num_returns objects in object_ids are ready.
Currently, the object ID arguments to wait must be unique.
Args:
object_ids (List[str]): List of object IDs to wait for.
timeout (int): Return to the caller after timeout milliseconds.
@@ -269,6 +271,10 @@ class PlasmaClient(object):
ready_ids, waiting_ids (List[str], List[str]): List of object IDs that
are ready and list of object IDs we might still wait on respectively.
"""
# Check that the object ID arguments are unique. The plasma manager
# currently crashes if given duplicate object IDs.
if len(object_ids) != len(set(object_ids)):
raise Exception("Wait requires a list of unique object IDs.")
ready_ids, waiting_ids = libplasma.wait(self.conn, object_ids, timeout, num_returns)
return ready_ids, list(waiting_ids)
+1 -1
View File
@@ -1421,7 +1421,7 @@ def wait(object_ids, num_returns=1, timeout=None, worker=global_worker):
Args:
object_ids (List[ObjectID]): List of object IDs for objects that may
or may not be ready.
or may not be ready. Note that these IDs must be unique.
num_returns (int): The number of object IDs that should be returned.
timeout (int): The maximum amount of time in milliseconds to wait before
returning.