diff options
| author | Rapptz <[email protected]> | 2016-01-26 22:24:50 -0500 |
|---|---|---|
| committer | Rapptz <[email protected]> | 2016-01-26 22:27:19 -0500 |
| commit | 3d21a186fe8dea2715f7f1ff3b9080d6c5efbf4b (patch) | |
| tree | 4ddfe01705c878628df40fa8d57f850cfe2d5d20 | |
| parent | add ``headers`` option to create_ffmpeg_player() (diff) | |
| download | discord.py-3d21a186fe8dea2715f7f1ff3b9080d6c5efbf4b.tar.xz discord.py-3d21a186fe8dea2715f7f1ff3b9080d6c5efbf4b.zip | |
Try to make the pause/resume loop not busy.
| -rw-r--r-- | discord/voice_client.py | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/discord/voice_client.py b/discord/voice_client.py index 70b6574f..3324587f 100644 --- a/discord/voice_client.py +++ b/discord/voice_client.py @@ -62,7 +62,8 @@ class StreamPlayer(threading.Thread): self.frame_size = encoder.frame_size self.player = player self._end = threading.Event() - self._paused = threading.Event() + self._resumed = threading.Event() + self._resumed.set() # we are not paused self._connected = connected self.after = after self.delay = encoder.frame_length / 1000.0 @@ -71,8 +72,10 @@ class StreamPlayer(threading.Thread): self.loops = 0 self._start = time.time() while not self._end.is_set(): - if self._paused.is_set(): - continue + # are we paused? + if not self._resumed.is_set(): + # wait until we aren't + self._resumed.wait() if not self._connected.is_set(): self.stop() @@ -98,15 +101,15 @@ class StreamPlayer(threading.Thread): pass def pause(self): - self._paused.set() + self._resumed.clear() def resume(self): self.loops = 0 self._start = time.time() - self._paused.clear() + self._resumed.set() def is_playing(self): - return not self._paused.is_set() and not self.is_done() + return self._resumed.is_set() and not self.is_done() def is_done(self): return not self._connected.is_set() or self._end.is_set() |