code: def _pulse_poll(self, timeout=None):
  		'''timeout should be in seconds (float),
  			0 for non-blocking poll and None (default) for no timeout.'''
  		with self._pulse_loop() as loop:
  			ts = c.mono_time()
  			ts_deadline = timeout and (ts + timeout)
  			while True:
  				delay = max(0, int((ts_deadline - ts) * 1000000)) if ts_deadline else -1
  				c.pa.mainloop_prepare(loop, delay) # usec
  				c.pa.mainloop_poll(loop)
  				if self._loop_closed: break # interrupted by close() or such
  				c.pa.mainloop_dispatch(loop)
  				if self._loop_stop: break
  				ts = c.mono_time()
  				if ts_deadline and ts >= ts_deadline: breaf _pulse_poll(self, timeout=None):
  		'''timeout should be in seconds (float),
  			0 for non-blocking poll and None (default) for no timeout.'''
  		with self._pulse_loop() as loop:
  			ts = c.mono_time()
  			ts_deadline = timeout and (ts + timeout)
  			while True:
  				delay = max(0, int((ts_deadline - ts) * 1000000)) if ts_deadline else -1
  				c.pa.mainloop_prepare(loop, delay) # usec
  				c.pa.mainloop_poll(loop)
  				if self._loop_closed: break # interrupted by close() or such
  				c.pa.mainloop_dispatch(loop)
  				if self._loop_stop: break
  				ts = c.mono_time()
  				if ts_deadline and ts >= ts_deadline: break
docs: timeout should be in seconds (float),
  			0 for non-blocking poll and None (default) for no timeout.