class_docstr: A priority queue of resumption points.
  
  Each resumption point is a pair of program counter to resume, and mask of
  threads that are waiting there.
  
  This class is a simple wrapper around Python's standard heapq implementation
  of priority queues.  There are just two subtleties:
  
  - Dequeue gets all the threads that were waiting at that point, by coalescing
    multiple entries if needed.
  
  - Enqueue drops entries with empty masks, because they need never be resumed.
class_docstr_tok: ["A","priority","queue","of","resumption","points",".","Each","resumption","point","is","a","pair","of","program","counter","to","resume",",","and","mask","of","threads","that","are","waiting","there",".","This","class","is","a","simple","wrapper","around","Python","'s","standard","heapq","implementation","of","priority","queues",".","There","are","just","two","subtleties",":","-","Dequeue","gets","all","the","threads","that","were","waiting","at","that","point",",","by","coalescing","multiple","entries","if","needed",".","-","Enqueue","drops","entries","with","empty","masks",",","because","they","need","never","be","resumed","."]
code: def enqueue(self, program_counter, mask):
      if self._backend.any(mask):
          self._insertion_ct += 1
          heapq.heappush(
              self._heap, (program_counter, self._insertion_ct, mask)
          )
  
file_path: probability/tensorflow_probability/python/experimental/auto_batching/stackless.py
imports: import contextlib
  import functools
  import heapq
  from absl import logging
  import six
  from tensorflow_probability.python.experimental.auto_batching import instructions
label_desc: Use image node_id 2 for calling the ExecutionQueue obj's underlying member method code with example usage: obj.enqueue(program_counter, mask) without return types