[haiku-commits] haiku: hrev49588 - src/kits/media

  • From: b.vitruvio@xxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Thu, 27 Aug 2015 19:50:42 +0200 (CEST)

hrev49588 adds 2 changesets to branch 'master'
old head: d6039d2b239d1571ad7ad1d61aedba713c23480e
new head: be7d9d3f5d23570f02de6853c781a9a56b13397b
overview:
http://cgit.haiku-os.org/haiku/log/?qt=range&q=be7d9d3f5d23+%5Ed6039d2b239d

----------------------------------------------------------------------------

90cdf5e42e88: BMediaNode::WaitForMessage: protect it over negative timeouts

be7d9d3f5d23: BMediaEventLooper: With B_WOULD_BLOCK we may still handle an event

[ Dario Casalinuovo <b.vitruvio@xxxxxxxxx> ]

----------------------------------------------------------------------------

2 files changed, 10 insertions(+), 2 deletions(-)
src/kits/media/MediaEventLooper.cpp | 5 +++--
src/kits/media/MediaNode.cpp | 7 +++++++

############################################################################

Commit: 90cdf5e42e888bb80eabe4770c7c34149ad60f02
URL: http://cgit.haiku-os.org/haiku/commit/?id=90cdf5e42e88
Author: Dario Casalinuovo <b.vitruvio@xxxxxxxxx>
Date: Thu Aug 27 17:38:44 2015 UTC

BMediaNode::WaitForMessage: protect it over negative timeouts

----------------------------------------------------------------------------

diff --git a/src/kits/media/MediaNode.cpp b/src/kits/media/MediaNode.cpp
index bece94a..c7b5f21 100644
--- a/src/kits/media/MediaNode.cpp
+++ b/src/kits/media/MediaNode.cpp
@@ -343,6 +343,13 @@ BMediaNode::WaitForMessage(bigtime_t waitUntil, uint32
flags,
char data[B_MEDIA_MESSAGE_SIZE];
int32 message;
ssize_t size;
+
+ // TODO: Investigate on this issue
+ if (waitUntil < 0) {
+ TRACE("BMediaNode::WaitForMessage: Negative timeout!\n");
+ waitUntil = 0;
+ }
+
while (true) {
size = read_port_etc(ControlPort(), &message, data,
sizeof(data), B_ABSOLUTE_TIMEOUT, waitUntil);

############################################################################

Revision: hrev49588
Commit: be7d9d3f5d23570f02de6853c781a9a56b13397b
URL: http://cgit.haiku-os.org/haiku/commit/?id=be7d9d3f5d23
Author: Dario Casalinuovo <b.vitruvio@xxxxxxxxx>
Date: Thu Aug 27 17:40:00 2015 UTC

BMediaEventLooper: With B_WOULD_BLOCK we may still handle an event

----------------------------------------------------------------------------

diff --git a/src/kits/media/MediaEventLooper.cpp
b/src/kits/media/MediaEventLooper.cpp
index c592845..c9c006d 100644
--- a/src/kits/media/MediaEventLooper.cpp
+++ b/src/kits/media/MediaEventLooper.cpp
@@ -228,11 +228,12 @@ BMediaEventLooper::ControlLoop()
return;

err = WaitForMessage(waitUntil);
- if (err == B_TIMED_OUT) {
+ if (err == B_TIMED_OUT
+ || err == B_WOULD_BLOCK) {
media_timed_event event;
if (hasEvent)
err = fEventQueue.RemoveFirstEvent(&event);
- else
+ else if (hasRealtime)
err = fRealTimeQueue.RemoveFirstEvent(&event);

if (err == B_OK) {


Other related posts:

  • » [haiku-commits] haiku: hrev49588 - src/kits/media - b . vitruvio