From 742580b40f4373482d7aff57ddc4ea0ec5c0208e Mon Sep 17 00:00:00 2001 From: beveloper Date: Fri, 14 Mar 2003 14:06:23 +0000 Subject: [PATCH] Improved error handling and timeouts. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2909 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/kits/media/DataExchange.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/kits/media/DataExchange.cpp b/src/kits/media/DataExchange.cpp index 1b66db7177..8902ad9514 100644 --- a/src/kits/media/DataExchange.cpp +++ b/src/kits/media/DataExchange.cpp @@ -11,7 +11,7 @@ #include "DataExchange.h" #include "ServerInterface.h" // NEW_MEDIA_SERVER_SIGNATURE -#define TIMEOUT 2000000 +#define TIMEOUT 5000000 // 5 seconds timeout! namespace BPrivate { namespace media { @@ -118,10 +118,10 @@ status_t SendToPort(port_id sendport, int32 msgcode, command_data *msg, int size rv = write_port_etc(sendport, msgcode, msg, size, B_RELATIVE_TIMEOUT, TIMEOUT); if (rv != B_OK) { FATAL("SendToPort: write_port failed, port %ld, error %#lx (%s)\n", sendport, rv, strerror(rv)); - if (sendport == MediaServerPort) { + if (rv == B_BAD_PORT_ID && sendport == MediaServerPort) { find_media_server_port(); sendport = MediaServerPort; - } else if (sendport == MediaAddonServerPort) { + } else if (rv == B_BAD_PORT_ID && sendport == MediaAddonServerPort) { find_media_addon_server_port(); sendport = MediaAddonServerPort; } else { @@ -148,10 +148,10 @@ status_t QueryPort(port_id requestport, int32 msgcode, request_data *request, in if (rv != B_OK) { FATAL("QueryPort: write_port failed, port %ld, error %#lx (%s)\n", requestport, rv, strerror(rv)); - if (requestport == MediaServerPort) { + if (rv == B_BAD_PORT_ID && requestport == MediaServerPort) { find_media_server_port(); requestport = MediaServerPort; - } else if (requestport == MediaAddonServerPort) { + } else if (rv == B_BAD_PORT_ID && requestport == MediaAddonServerPort) { find_media_addon_server_port(); requestport = MediaAddonServerPort; } else {