Caused `open` to display an error with non-zero exit code when the
target application was already running and is single launch. In fact,
the error check at the end explicitly tests for B_ALREADY_RUNNING
along with B_OK.
Change-Id: Ic38c961bcdd8350b97b0d75ec010d25198afd561
From the FreeBSD manual pages:
> If the callout is currently being serviced and cannot be stopped,
> and at the same time a next invocation of the same callout is also
> scheduled, then callout_stop() unschedules the next run and returns
> zero.
Previously we would return zero but not unschedule the next run.
This may fix#18315.
Since we used a hash table with a fixed size (1024), collisions were
obviously inevitable, meaning that while insertions would always be
fast, lookups and deletions would take linear time to search the
linked-list for the area in question. For recently-created areas,
this would be fast; for less-recently-created areas, it would get
slower and slower and slower.
A particularly pathological case was the "mmap/24-1" test from the
Open POSIX Testsuite, which creates millions of areas until it hits
ENOMEM; it then simply exits, at which point it would run for minutes
and minutes in the kernel team deletion routines; how long I don't know,
as I rebooted before it finished.
This change fixes that problem, among others, at the cost of increased
area creation time, by using an AVL tree instead of a hash. For comparison,
mmap'ing 2 million areas with the "24-1" test before this change took
around 0m2.706s of real time, while afterwards it takes about 0m3.118s,
or around a 15% increase (1.152x).
On the other hand, the total test runtime for 2 million areas went from
around 2m11.050s to 0m4.035s, or around a 97% decrease (0.031x); in other
words, with this new code, it is *32 times faster.*
Area insertion will no longer be O(1), however, so the time increase
may go up with the number of areas present on the system; but if it's
only around 3 seconds to create 2 million areas, or about 1.56 us per area,
vs. 1.35 us before, I don't think that's worth worrying about.
My nonscientific "compile HaikuDepot with 2 cores in VM" benchmark
seems to be within the realm of "noise", anyway, with most results
both before and after this change coming in around 47s real time.
Change-Id: I230e17de4f80304d082152af83db8bd5abe7b831
* Remove comment stating DesktopColor is buggy. The documentation has
since been updated clarifying that this is the expected behavior.
* Refactor code.
* No functional changes.
Change-Id: I03711136eb613afb80ad8c03a7f18ba6d15f641c
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6256
Tested-by: Automation <automation@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
* Clarify what information BWindow::WorkspacesChanged provides
* Clarify when BWindow::WorkspaceActivated is called
Change-Id: Ifcb041bcf67db1ee5c1c514a2b97baa49f8c4dcc
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6257
Tested-by: Automation <automation@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
Obtains HDS's password requirements and displays
those to the user when creating a new account.
Relates to #13986
Change-Id: I1b76181e17bc03e9baf915dadcd3c45f9eb89b3f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6203
Tested-by: Automation <automation@haiku-os.org>
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
We need to assign the fallback value to the temporary variable,
otherwise there is a broken if logic in case the percent is not
formattable.
Change-Id: I90593fdf8ec29b802dff02c2fbe5d7ac40cea2ff
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6238
Tested-by: Automation <automation@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
In order not to fill up the console with identical strings, show
a count of the repeated lines instead.
When the console is cleared, make sure the repeating line is inserted
by resetting the fPreviousText.
Plus a minor style fix.
Change-Id: I408a24e59a04c9e51d4ede3f272f7ca23a19b432
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6206
Tested-by: Automation <automation@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
Tracker creates folders in
~/config/settings/Tracker/DefaultQueryTemplates with customized
attributes. In particular, each folder has relevant columns already
pre-set. These were being generated and written to disk in the host's
endian, but always written to the big endian attribute name.
This meant that on LE CPUs, Tracker tried to load _trk/columns and
convert it from BE to LE. Sanity checks failed, and each 'converted'
column was deleted, leaving Tracker to install a default set of columns.
The attribute for the host's endian is now automatically used
(_trk/columns for BE, _trk/columns_le for LE).
This fix also exposed that the 'When' column for the text_x-email
template folder was incorrectly typed as a string, instead of time.
Change-Id: I44d5f99d71d949368ff1aba1f48c03332a26d331
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6213
Tested-by: Automation <automation@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
Change-Id: Ibe8b260a49c1b6e51df06f82b6c3a066c44accb1
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6219
Reviewed-by: X512 <danger_mail@list.ru>
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
Change-Id: Ie4081a3642e5de84865895e81aaa28f090b2c5eb
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6216
Tested-by: Automation <automation@haiku-os.org>
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
Change-Id: Ia16e66a7bdac37019e6256405b9f10024909c69a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6215
Tested-by: Automation <automation@haiku-os.org>
Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
Under "Select Boot Volume" you can also select an older state to
boot into: Rename to "Select Boot Volume/State".
The title on the page to select an older state was "Select Haiku
version". Since every un/install of any software package creates
a "state" it's not actually the "Haiku version" but the overall
state: Rename to "Select package activation state".
Change-Id: Ife9408c52214f6ceeb9994c8b7020cec6d679f54
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5428
Tested-by: Automation <automation@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
Adding a "Copy" button makes the feature discoverable.
If nothing is selected, copy all items.
Change-Id: I2004ceb621628e01018cc90ec80033b3797c4c02
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6212
Tested-by: Automation <automation@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
* Replaces the relavent raw pointers with BReferences
* Fixes one observer not being released
Fixes#12076Fixes#16577
Change-Id: I67b68478911084637e9b474e56066aee7550ffaf
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6182
Tested-by: Automation <automation@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
This is a workaround to allow early bootup to progress further.
Eventually accessed and modified page flags will need to be implemented
but for now this patch allows to proceed with bringup attempts
for the ARM port.
Change-Id: Icad415a5d484213a76a90ca79bb76463140a8bdf
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6197
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Tested-by: Automation <automation@haiku-os.org>
Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>
This provides automatic percentage formatting according to the locale
setting.
Change-Id: I9a833fdc4056ac5479d8e4b4feddd0fce06d1fcd
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6210
Tested-by: Automation <automation@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
This restores approximately the old fixed size from before the
previous commit. Ideally this would be the preferred size, not
the minimum size, but that isn't quite possible when contained in
a scroll view.
When mail_daemon associates a subscribed IMAP folder with a local
folder, ~/config/settings/Tracker/DefaultQueryTemplates/text_x-email
attributes are duplicated to the folder. Any customizations (column
layout, window size / location, etc) are overwritten by the values set
for text_x-email. The text_x-email template folder was originally meant
to be used by the 'New E-mail' query. In particular, the columns that
might be set for the query view aren't directly useful for an IMAP
folder - Account is useful for the query view, but not for an IMAP
folder, Status is not useful for the query view, but useful for an IMAP
folder.
This behavior is now modified such that attributes are only copied the
first time an IMAP folder is created. Subsequent launches of mail_daemon
will not overwrite per-folder customizations.
Fixes#18297
Change-Id: Iacdc78403681d5546668f28f7f0e34d1a57fd410
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6202
Tested-by: Automation <automation@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
This provides automatic percentage formatting according to the locale
setting.
Also replaces some occurences of sprintf with SetToFormat.
Change-Id: I330aaebfe4615f4b40b00bd04f83a1a6d8efd6a8
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6204
Tested-by: Automation <automation@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
This provides automatic percentage formatting according
to the locale setting
Change-Id: I571d2bd9ffc53425c9633de3504d04f41acf0017
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6157
Tested-by: Automation <automation@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
* This prevents haiku from "messing" with the gUART until
EFI boot services are exiting.
* The previous design meant that our loader started fiddling
with the gUART while EFI BIOS services were still being
used. On the SiFive, this broke serial output.
* Now, we guard on serial_init if EFI is unavailable, and
only fallback to direct UART usage when EFI is no longer
available.
* tldr; we're more closely managing serial across architectures
* serial_init use EFI and init it
* kernel_serial_handoff, stop using EFI
* serial_init, oh no EFI. Use gUART and Init it
* one gap is likely if no serial is available in EFI, but I
haven't seen that yet.
Change-Id: I644b51e4912272110435d288a95517d43a76740d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6200
Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>
* Assists on early boot platforms to install / upgrade when
no network is available.
* Doesn't introduce any additional dependencies
* Creates shine-though directories too.
Change-Id: I11dd207b2ffbae1768bab7a118a51034df238878
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6185
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
Tested-by: Automation <automation@haiku-os.org>
Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>
* Add ellipsis to menu item "Set up boot menu" as it opens a window
to do the actual setting up.
* The app name is actually "BootManager".
* Consistenly use single quotes for button labels.
* Grammer correction
Change-Id: I4eaf7029653fc53c60b4a4b4496cf87e1834ac33
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6189
Tested-by: Automation <automation@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
* The condition in TransformBox::MouseOver is always true (hint:
_DragStateFor never returns a null value)
* The code sometimes calls fCurrentState->UpdateViewCursor twice
Change-Id: I073203278fc103f5ee720dfbe06bf1f04f48c99f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6179
Tested-by: Automation <automation@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
When moving an unread message to the Trash, a B_QUERY_UPDATE is
triggered, resulting in a global notification popup of the new message
count - inclusive of all messages on the volume. The on-disk location of
a mail message is now checked to determine if it's in the Trash, before
incrementing or decrementing the unread mail count (and triggering a
notification). This effectively filters out notifications for deleting
unread e-mail messages.
The Deskbar view uses the same logic to display the Mail/No Mail icon.
The B_QUERY_UPDATE handler here has been adjusted to match.
Additionally, unread mail messages in the trash are now filtered when
mail_daemon starts. This ensures that an accurate initial unread count
is set.
Fixes#18252Fixes#17510
Change-Id: I9b8ec0b2b1f1ddb07797f8a9bedf32811f26f137
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6136
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
Tested-by: Automation <automation@haiku-os.org>
_CreateFolder returns NULL when it's unable to create a folder on the
local filesystem to represent an IMAP folder. This can happen when a
file has the same name as an IMAP folder that has been subscribed to on
the remote server.
Handle this condition and do not try to add the folder to a connection worker.
Change-Id: I197d577fabe45360ffa9ce4ac07da34652e78fdd
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6186
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Commit 6d9b21e8 contained an error that resulted in FileTypes being
unable to set icons for files and directories. This should now be
resolved.
Change-Id: Ieb65a6d80c7f96f94bca9dff89681777c7de5577
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6183
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Extracted a _GetKernelDateTime() function, and used that to get the value
for the kernel date/time text, and to update it at replicant's instantiation
time.
Fixes#18149.
Also: changed the _Get*() methods to return BString instead of const char*.
Change-Id: I908fe25f39355b3d46f504bd0d8a5fdef1af67f1
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6158
Tested-by: Automation <automation@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>