the root vnode was tried to be removed as well (which resulted in a crash).
Since playing with the root node reference count is a bad idea anyway and opens
a big race condition (with regards to the unused list), we no longer do that
now, until it's safe.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16665 a95241bf-73f2-0310-859d-f6bbb57e9c96
blocks - this is not enough, though as it would also need to ask other
volumes to free ranges.
* Increased the number of blocks to free in case of low memory.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16663 a95241bf-73f2-0310-859d-f6bbb57e9c96
* fs_unmount() freed vnodes, but didn't remove them from the unused list if
needed.
* vfs_get_module_path() could put a vnode twice under several situations.
* vnode_path_to_vnode() now always puts the dir vnode, even if the provided
path is NULL. Documented the fact that it does eat the ref, too.
* Added a to-do item in vfs_get_vnode_cache() about a possible problem.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16662 a95241bf-73f2-0310-859d-f6bbb57e9c96
used for the drag bitmap, see NOTEs on why that is...
* moved reference counting of the ServerCursor from Desktop into
HWInterface where it is actually used
* I hope to have fixed the problems with _DrawCursor when dragging
something. At least the reference counting of the ServerCursor was
for real, since the HWInterface rejected changes to the cursor while
something was dragged, which caused the old cursor to be Released() and
deleted each time the mouse moved...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16657 a95241bf-73f2-0310-859d-f6bbb57e9c96
take an empty region as an indication to remove the clipping, but on R5,
this is actually valid... this patch fixes the problem
* the ViewState::clipping_region is now consistently used to memorize
the user defined clipping of the view state instead of being sometimes
used to cache the current view clipping
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16656 a95241bf-73f2-0310-859d-f6bbb57e9c96
read_port() or port_buffer_size() will fail immediately.
* Made the functions above plus port_count() support this new way of closing
a port.
* All of Marcus's port tests now succeed.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16655 a95241bf-73f2-0310-859d-f6bbb57e9c96
and a timeout.
* _user_wait_for_thread() was not interruptible before, ie. Control-C wouldn't
work.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16654 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Also, the selection should be updated correctly when items are removed.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16652 a95241bf-73f2-0310-859d-f6bbb57e9c96
sub types first).
Also, if removing the type from the supporting application lists fails, this
is no longer propagated to the user - the MIME type got deleted after all,
and that's the purpose of this function.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16651 a95241bf-73f2-0310-859d-f6bbb57e9c96
This fixes BTextControl's text staying gray when it was once disabled.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16646 a95241bf-73f2-0310-859d-f6bbb57e9c96
$ /boot/home/develop/haiku/generated/objects/haiku/x86/debug_1/tests/system/kernel/port_close_test_1
created port 2269
write port result 0x00000000 (No Error)
write port result 0x00000000 (No Error)
close port result 0x00000000 (No Error)
write port result 0x80001200 (Bad port ID)
port_buffer_size -2147479552 (0x80001000) (Bad semaphore ID)
read port code 1234, size 10 (0x0000000a) (Unknown Error (10))
port_buffer_size -2147479552 (0x80001000) (Bad semaphore ID)
read port code 5678, size 20 (0x00000014) (Unknown Error (20))
should block now
port_buffer_size -2147479552 (0x80001000) (Bad semaphore ID)
$ /boot/home/develop/haiku/generated/objects/haiku/x86/debug_1/tests/system/kernel/port_close_test_2
created port 2270
write port result 0x00000000 (No Error)
write port result 0x00000000 (No Error)
close port result 0x00000000 (No Error)
write port result 0x80001200 (Bad port ID)
port_buffer_size -2147479552 (0x80001000) (Bad semaphore ID)
read port code 1234, size 10 (0x0000000a) (Unknown Error (10))
port_buffer_size -2147479552 (0x80001000) (Bad semaphore ID)
read port code 5678, size 20 (0x00000014) (Unknown Error (20))
should block now
read port code 5678, size -2147479040 (0x80001200) (Bad port ID)
$ /boot/home/develop/haiku/generated/objects/haiku/x86/debug_1/tests/system/kernel/port_delete_test
created port 2271
write port result 0x00000000 (No Error)
write port result 0x00000000 (No Error)
delete port result 0x00000000 (No Error)
everything should fail now
write port result 0x80001200 (Bad port ID)
port_buffer_size -2147479040 (0x80001200) (Bad port ID)
read port code 0, size -2147479040 (0x80001200) (Bad port ID)
$
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16645 a95241bf-73f2-0310-859d-f6bbb57e9c96
* thermal driver uses get_object to obtain the passive device package.
Need changes to acpi_object_type to handle references... that'll have to come in the near future.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16637 a95241bf-73f2-0310-859d-f6bbb57e9c96
vfs_free_unused_vnodes()); the vnode mutex is now hold for much shorter times
only:
* Rewrote advisory_locking creation/maintenance to hold the vnode mutex only
for very short times.
* the vnode mutex is no longer held during file cache construction; instead,
the vnode is marked busy.
* Implemented an (incorrect for now) get_advisory_lock()
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16635 a95241bf-73f2-0310-859d-f6bbb57e9c96
least it looks more or less okay (long description border isn't right yet)
and is font sensitive.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16632 a95241bf-73f2-0310-859d-f6bbb57e9c96
I don't know why this never happened on R5. Haiku close_port()
works as documented in BeBook, but might possibly different in R5.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16629 a95241bf-73f2-0310-859d-f6bbb57e9c96
* IconView now draws a rectangle in case there is no icon to let the
user know there is something he could click on.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16628 a95241bf-73f2-0310-859d-f6bbb57e9c96
Added more error checking to Connect() and Input/Output publishing.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16625 a95241bf-73f2-0310-859d-f6bbb57e9c96
choose the file type from a list, too.
* Several windows did not forward unknown messages to their parent, and thus
scripting did not work properly for them.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16623 a95241bf-73f2-0310-859d-f6bbb57e9c96