From 72a63c23a296db2eb22832431d2c1b5f03313034 Mon Sep 17 00:00:00 2001 From: Philippe Houdoin Date: Thu, 6 Nov 2003 20:05:43 +0000 Subject: [PATCH] Should help a little to interrupt command completion reply wait... git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5268 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- .../kernel/drivers/network/stack/Jamfile | 17 +++++++++++------ .../drivers/network/stack/net_server_driver.c | 2 +- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/add-ons/kernel/drivers/network/stack/Jamfile b/src/add-ons/kernel/drivers/network/stack/Jamfile index f3b9a8f2e5..662d4d1eb0 100644 --- a/src/add-ons/kernel/drivers/network/stack/Jamfile +++ b/src/add-ons/kernel/drivers/network/stack/Jamfile @@ -42,9 +42,14 @@ R5KernelAddon net_stack_driver : kernel drivers bin : } # Installation -OBOSInstall install-networking : /boot/home/config/add-ons/kernel/drivers/bin - : net_server_driver net_stack_driver ; -OBOSInstallRelSymLink install-networking - : /boot/home/config/add-ons/kernel/drivers/dev/net - : net_server_driver net_stack_driver - : installed-symlink ; + +OBOSInstall install-networking : /boot/home/config/add-ons/kernel/drivers/bin : + net_server_driver + net_stack_driver +; + +OBOSInstallRelSymLink install-networking : /boot/home/config/add-ons/kernel/drivers/dev/net : + net_server_driver + net_stack_driver : + installed-symlink +; diff --git a/src/add-ons/kernel/drivers/network/stack/net_server_driver.c b/src/add-ons/kernel/drivers/network/stack/net_server_driver.c index 2568cce9cd..ded63f4f40 100644 --- a/src/add-ons/kernel/drivers/network/stack/net_server_driver.c +++ b/src/add-ons/kernel/drivers/network/stack/net_server_driver.c @@ -726,7 +726,7 @@ execute_command(net_server_cookie *nsc, uint32 op, void *data, uint32 length) while (true) { // wait until we get the results back from our command - if ((status = acquire_sem(nsc->command_sem)) == B_OK) { + if ((status = acquire_sem_etc(nsc->command_sem, 1, B_CAN_INTERRUPT, 0)) == B_OK) { if (command->op != 0) { if (--max_tries <= 0) { FATAL(("command is not freed after 200 tries!\n"));