Improved error handling and timeouts.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2909 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
57c59a5377
commit
742580b40f
|
@ -11,7 +11,7 @@
|
||||||
#include "DataExchange.h"
|
#include "DataExchange.h"
|
||||||
#include "ServerInterface.h" // NEW_MEDIA_SERVER_SIGNATURE
|
#include "ServerInterface.h" // NEW_MEDIA_SERVER_SIGNATURE
|
||||||
|
|
||||||
#define TIMEOUT 2000000
|
#define TIMEOUT 5000000 // 5 seconds timeout!
|
||||||
|
|
||||||
namespace BPrivate {
|
namespace BPrivate {
|
||||||
namespace media {
|
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);
|
rv = write_port_etc(sendport, msgcode, msg, size, B_RELATIVE_TIMEOUT, TIMEOUT);
|
||||||
if (rv != B_OK) {
|
if (rv != B_OK) {
|
||||||
FATAL("SendToPort: write_port failed, port %ld, error %#lx (%s)\n", sendport, rv, strerror(rv));
|
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();
|
find_media_server_port();
|
||||||
sendport = MediaServerPort;
|
sendport = MediaServerPort;
|
||||||
} else if (sendport == MediaAddonServerPort) {
|
} else if (rv == B_BAD_PORT_ID && sendport == MediaAddonServerPort) {
|
||||||
find_media_addon_server_port();
|
find_media_addon_server_port();
|
||||||
sendport = MediaAddonServerPort;
|
sendport = MediaAddonServerPort;
|
||||||
} else {
|
} else {
|
||||||
|
@ -148,10 +148,10 @@ status_t QueryPort(port_id requestport, int32 msgcode, request_data *request, in
|
||||||
|
|
||||||
if (rv != B_OK) {
|
if (rv != B_OK) {
|
||||||
FATAL("QueryPort: write_port failed, port %ld, error %#lx (%s)\n", requestport, rv, strerror(rv));
|
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();
|
find_media_server_port();
|
||||||
requestport = MediaServerPort;
|
requestport = MediaServerPort;
|
||||||
} else if (requestport == MediaAddonServerPort) {
|
} else if (rv == B_BAD_PORT_ID && requestport == MediaAddonServerPort) {
|
||||||
find_media_addon_server_port();
|
find_media_addon_server_port();
|
||||||
requestport = MediaAddonServerPort;
|
requestport = MediaAddonServerPort;
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in New Issue