#include <vspace.h>
Definition at line 1431 of file vspace.h.
◆ FastLock()
vspace::internals::FastLock::FastLock |
( |
vaddr_t |
offset = 0 | ) |
|
|
inline |
◆ lock()
void vspace::internals::FastLock::lock |
( |
| ) |
|
Definition at line 727 of file vspace.cc.
727 {
728#ifdef HAVE_CPP_THREADS
729 while (_lock.test_and_set()) {
730 }
731 bool empty = _owner < 0;
732 if (empty) {
733 _owner =
vmem.current_process;
734 } else {
735 int p =
vmem.current_process;
736 vmem.metapage->process_info[
p].next = -1;
737 if (_head < 0)
739 else
740 vmem.metapage->process_info[_tail].next =
p;
742 }
743 _lock.clear();
744 if (!empty)
746#else
748#endif
749}
void lock_file(int fd, size_t offset, size_t len)
ipc_signal_t wait_signal(bool lock)
◆ unlock()
void vspace::internals::FastLock::unlock |
( |
| ) |
|
Definition at line 751 of file vspace.cc.
751 {
752#ifdef HAVE_CPP_THREADS
753 while (_lock.test_and_set()) {
754 }
755 _owner = _head;
756 if (_owner >= 0)
757 _head =
vmem.metapage->process_info[_head].next;
758 _lock.clear();
759 if (_owner >= 0)
761#else
763#endif
764}
void unlock_file(int fd, size_t offset, size_t len)
bool send_signal(int processno, ipc_signal_t sig, bool lock)
◆ _offset
vaddr_t vspace::internals::FastLock::_offset |
|
private |
The documentation for this class was generated from the following files: