1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2026-01-17 15:51:00 +00:00
serenity/Kernel
Robin Burchell 6aa77d1999 SharedBuffer: Fix deadlock on destroy
We were locking the list of references, and then destroying the
reference, which made things go a little crazy.

It's more straightforward to just remove the per-reference lock: the
syscalls all have to lock the full list anyway, so let's just do that
and avoid the hassle.

While I'm at it, also move the SharedBuffer code out to its own file as it's
getting a little long and unwieldly, and Process.cpp is already huge.
2019-07-16 15:27:46 +02:00
..
Arch/i386 Kernel: Move VirtualAddress.h into VM/ 2019-07-09 15:04:45 +02:00
Boot Kernel: Make better use of the multiboot info. 2019-06-02 09:53:42 +02:00
Devices Kernel: Remove use of [[gnu::pure]]. 2019-07-16 13:44:41 +02:00
FileSystem Kernel: Remove use of [[gnu::pure]]. 2019-07-16 13:44:41 +02:00
Net Kernel: Add Thread::block_until(Condition). 2019-07-14 14:54:54 +02:00
TTY AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
VM Kernel: Remove use of [[gnu::pure]]. 2019-07-16 13:44:41 +02:00
.bochsrc Give the emulator testing environments 128 MB of RAM. 2019-03-27 13:02:29 +01:00
.gitignore Meta: Removed all gitignore in the source tree only keeping the root one 2019-06-30 10:41:26 +02:00
Alarm.h Add clang-format file 2019-05-28 17:31:20 +02:00
Assertions.h Kernel: Move i386.{cpp,h} => Arch/i386/CPU.{cpp,h} 2019-06-07 20:02:01 +02:00
build-image-grub.sh Build: Remove grub from default build process 2019-06-04 07:15:44 -07:00
build-image-qemu.sh Build: Fix incorrect user and group settings for disk image (#280) 2019-07-03 16:57:37 +02:00
build-root-filesystem.sh Piano: Start working on a desktop piano. 2019-07-13 17:05:16 +02:00
CMOS.cpp AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
CMOS.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
Console.cpp AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
Console.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
DoubleBuffer.cpp AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
DoubleBuffer.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
grub.cfg Kernel: Parse cmdline for root filesystem e.g. root=/dev/hda1 2019-06-04 07:14:40 -07:00
init.cpp Kernel: First cut of a sb16 driver 2019-07-13 08:00:24 +02:00
install.sh Build: Install most headers to Root (and libcore.a/libgui.a) 2019-05-17 21:59:48 +02:00
IO.h Kernel: First cut of a sb16 driver 2019-07-13 08:00:24 +02:00
IRQHandler.cpp Kernel: Move PIC.cpp into Arch/i386/ 2019-07-09 15:04:43 +02:00
IRQHandler.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
KeyCode.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
kmalloc.cpp AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
kmalloc.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
KParams.cpp Kernel: Fix KParams parsing with trailing space in kernel cmdline 2019-06-04 07:08:07 -07:00
KParams.h Kernel: Run clang-format on everything. 2019-06-07 11:43:58 +02:00
kprintf.cpp Kernel: Colorize debugger output from the kernel. 2019-06-22 22:45:16 +02:00
KResult.h Kernel: Fix KResultOr move constructor not copying errors. 2019-06-14 06:24:02 +02:00
kstdio.h LibHTML: Make it possible to build LibHTML on the host. 2019-06-22 21:21:57 +02:00
KSyms.cpp AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
KSyms.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
linker.ld Kernel: Use a multiboot header instead of a convoluted two-part bootloader. 2019-04-01 21:43:07 +02:00
Lock.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
makeall.sh Build: Make sure we build LibAudio before AudioServer :^) 2019-07-13 22:58:36 +02:00
Makefile SharedBuffer: Fix deadlock on destroy 2019-07-16 15:27:46 +02:00
mkmap.sh Kernel: Don't symbolicate symbol+offset for obvious non-kernel addresses. 2019-04-30 14:47:22 +02:00
MousePacket.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
Multiboot.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
PCI.cpp AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
PCI.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
Process.cpp SharedBuffer: Fix deadlock on destroy 2019-07-16 15:27:46 +02:00
Process.h Kernel: Add support for the WSTOPPED flag to the waitpid() syscall. 2019-07-14 11:35:49 +02:00
ProcessTracer.cpp AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
ProcessTracer.h Kernel: Move File.{cpp,h} into FileSystem/ 2019-07-09 15:04:45 +02:00
RTC.cpp AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
RTC.h Add clang-format file 2019-05-28 17:31:20 +02:00
run Kernel: First cut of a sb16 driver 2019-07-13 08:00:24 +02:00
Scheduler.cpp Kernel: Add Thread::block_until(Condition). 2019-07-14 14:54:54 +02:00
Scheduler.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
SharedBuffer.cpp SharedBuffer: Fix deadlock on destroy 2019-07-16 15:27:46 +02:00
SharedBuffer.h SharedBuffer: Fix deadlock on destroy 2019-07-16 15:27:46 +02:00
StdLib.cpp AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
StdLib.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
sync.sh Build: Remove grub from default build process 2019-06-04 07:15:44 -07:00
Syscall.cpp Kernel: Have the open() syscall take an explicit path length parameter. 2019-07-08 20:01:49 +02:00
Syscall.h Kernel: Have the open() syscall take an explicit path length parameter. 2019-07-08 20:01:49 +02:00
Thread.cpp Kernel: Add Thread::block_until(Condition). 2019-07-14 14:54:54 +02:00
Thread.h Kernel: Add Thread::block_until(Condition). 2019-07-14 14:54:54 +02:00
UnixTypes.h Kernel: Add support for the WSTOPPED flag to the waitpid() syscall. 2019-07-14 11:35:49 +02:00