| 111 | |
| 112 | |
| 113 | def dequeue(net, queue, num_blobs, status=None, field_names=None, |
| 114 | num_records=1): |
| 115 | if field_names is not None: |
| 116 | assert len(field_names) == num_blobs |
| 117 | data_names = [net.NextName(name) for name in field_names] |
| 118 | else: |
| 119 | data_names = [net.NextName('data', i) for i in range(num_blobs)] |
| 120 | if status is None: |
| 121 | status = net.NextName('status') |
| 122 | results = net.SafeDequeueBlobs( |
| 123 | queue, data_names + [status], num_records=num_records) |
| 124 | results = list(results) |
| 125 | status_blob = results.pop(-1) |
| 126 | return results, status_blob |
| 127 | |
| 128 | |
| 129 | def close_queue(step, *queues): |