| 95 | |
| 96 | |
| 97 | def enqueue(net, queue, data_blobs, status=None): |
| 98 | if status is None: |
| 99 | status = net.NextName('status') |
| 100 | # Enqueueing moved the data into the queue; |
| 101 | # duplication will result in data corruption |
| 102 | queue_blobs = [] |
| 103 | for blob in data_blobs: |
| 104 | if blob not in queue_blobs: |
| 105 | queue_blobs.append(blob) |
| 106 | else: |
| 107 | logger.warning("Need to copy blob {} to enqueue".format(blob)) |
| 108 | queue_blobs.append(net.Copy(blob)) |
| 109 | results = net.SafeEnqueueBlobs([queue] + queue_blobs, queue_blobs + [status]) |
| 110 | return results[-1] |
| 111 | |
| 112 | |
| 113 | def dequeue(net, queue, num_blobs, status=None, field_names=None, |