[haiku-commits] Change in ...haiku[master]: Change select hook interface and select_sync_pool API

  • From: Gerrit <review@xxxxxxxxxxxxxxxxxxx>
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Fri, 25 Jan 2019 00:40:56 +0000

From waddlesplash <waddlesplash@xxxxxxxxx>:

waddlesplash has uploaded this change for review. ( 
https://review.haiku-os.org/c/haiku/+/897


Change subject: Change select hook interface and select_sync_pool API
......................................................................

Change select hook interface and select_sync_pool API

* The select hooks are now called once per selection with the entire set
of events to select, instead of once for every individual event.
* The hooks now also return any events already present directly.

* select_sync_pools are no longer allocated dynamically but are
  initialized at device/object creation time.
* select_sync_pools are associated with a mutex which allows the select
  code to deselect entries without making a call to the device.
* Pool entries are no longer dynamically allocated. The select_info
  itself is added to the pool. This means that select_infos cannot be
  added to multiple pools.

* The deselect device hook is no longer called.

Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>
Cherry-picked from hamishm's "event_queue" branch. Changes by me:
 * De-bitrot. There was a minor refactor of some of the wait_for_objects
   code and so this needed appropriate tweaking.
 * Remove some of the deprecated methods which were not used;
   fewer compatibility shims to provide.
---
M headers/os/drivers/device_manager.h
M headers/os/drivers/fs_interface.h
M headers/private/kernel/fs/fd.h
M headers/private/kernel/fs/select_sync_pool.h
M headers/private/kernel/wait_for_objects.h
M headers/private/net/net_socket.h
M headers/private/net/net_stack_interface.h
M src/add-ons/kernel/bus_managers/random/driver.cpp
M src/add-ons/kernel/drivers/power/acpi_button/acpi_button.cpp
M src/add-ons/kernel/drivers/power/acpi_lid/acpi_lid.cpp
M src/add-ons/kernel/drivers/tty/tty.cpp
M src/add-ons/kernel/drivers/tty/tty_private.h
M src/add-ons/kernel/file_systems/bindfs/kernel_interface.cpp
M src/add-ons/kernel/file_systems/layers/attribute_overlay/attribute_overlay.cpp
M src/add-ons/kernel/file_systems/layers/log_overlay/log_overlay.cpp
M src/add-ons/kernel/file_systems/layers/write_overlay/write_overlay.cpp
M src/add-ons/kernel/file_systems/userlandfs/kernel_add_on/kernel_interface.cpp
M src/add-ons/kernel/generic/tty/tty.cpp
M src/add-ons/kernel/generic/tty/tty_private.h
M src/add-ons/kernel/network/stack/net_socket.cpp
M src/add-ons/kernel/network/stack/stack_interface.cpp
M src/system/kernel/device_manager/AbstractModuleDevice.cpp
M src/system/kernel/device_manager/AbstractModuleDevice.h
M src/system/kernel/device_manager/BaseDevice.cpp
M src/system/kernel/device_manager/BaseDevice.h
M src/system/kernel/device_manager/FileDevice.cpp
M src/system/kernel/device_manager/FileDevice.h
M src/system/kernel/device_manager/devfs.cpp
M src/system/kernel/device_manager/legacy_drivers.cpp
M src/system/kernel/fs/fd.cpp
M src/system/kernel/fs/fifo.cpp
M src/system/kernel/fs/socket.cpp
M src/system/kernel/fs/vfs.cpp
M src/system/kernel/port.cpp
M src/system/kernel/sem.cpp
M src/system/kernel/thread.cpp
M src/system/kernel/wait_for_objects.cpp
37 files changed, 387 insertions(+), 520 deletions(-)



  git pull ssh://git.haiku-os.org/haiku refs/changes/97/897/1
--
To view, visit https://review.haiku-os.org/c/haiku/+/897
To unsubscribe, or for help writing mail filters, visit 
https://review.haiku-os.org/settings

Gerrit-Project: haiku
Gerrit-Branch: master
Gerrit-Change-Id: If87fa507471bc7f29c2d800581035d32f0e3ad29
Gerrit-Change-Number: 897
Gerrit-PatchSet: 1
Gerrit-Owner: waddlesplash <waddlesplash@xxxxxxxxx>
Gerrit-MessageType: newchange

Other related posts:

  • » [haiku-commits] Change in ...haiku[master]: Change select hook interface and select_sync_pool API - Gerrit