summaryrefslogtreecommitdiffstats
path: root/src/core/hle/kernel/thread.cpp (follow)
Commit message (Expand)AuthorAgeFilesLines
* kernel: Use Scheduler class for threading.bunnei2018-02-181-155/+14
* kernel: Remove unused address_arbiter code.bunnei2018-02-181-34/+0
* Kernel/IPC: Add a small delay after each SyncRequest to prevent thread starvation.Subv2018-02-181-0/+1
* thread: Silence formatting specifier warningsLioncash2018-02-141-2/+3
* Kernel: Allow chaining WaitSynchronization calls inside a wakeup callback.Subv2018-01-091-8/+17
* CoreTiming: Reworked CoreTiming (cherry-picked from Citra #3119)B3n302018-01-091-3/+2
* arm: Remove SkyEye/Dyncom code that is ARMv6-only.bunnei2018-01-031-4/+2
* thread: Keep track of the initially created handle.bunnei2017-12-311-1/+2
* thread: Main thread should set thread handle to reg 1.bunnei2017-12-301-1/+4
* thread: Remove THUMB mode flag.bunnei2017-12-301-1/+1
* thread: Main thread should be ready by default, all others dormant.bunnei2017-12-301-4/+3
* kernel: Various 64-bit fixes in memory/process/threadbunnei2017-12-291-5/+5
* hle: Use Switch formatted result codes.bunnei2017-11-011-3/+2
* hle: Fix QueryMemory response for MemoryInfo.bunnei2017-10-201-1/+1
* Merge remote-tracking branch 'upstream/master' into nxbunnei2017-10-101-23/+45
|\
| * Merge pull request #2971 from Subv/per_process_memopsSebastian Valle2017-10-011-0/+6
| |\
| | * Kernel/Thread: Added a helper function to get a thread's command buffer VAddr.Subv2017-10-011-0/+6
| * | Merge pull request #2967 from Subv/thread_wakeup_callbacksSebastian Valle2017-09-301-3/+10
| |\ \ | | |/ | |/|
| | * Kernel/Threads: When putting a thread to wait, specify a function to execute when it is awoken.Subv2017-09-281-3/+10
| * | Fixed type conversion ambiguityHuw Pascoe2017-09-301-9/+9
| * | Kernel/Thread: Allow specifying which process a thread belongs to when creating it.Subv2017-09-271-8/+9
| |/
| * memory: Add GetCurrentPageTable/SetCurrentPageTableMerryMage2017-09-241-7/+4
| * Merge pull request #2842 from Subv/switchable_page_tableB3n302017-09-151-0/+12
| |\
| | * Kernel/Threads: Don't clear the CPU instruction cache when performing a context switch from an idle thread into a thread in the same process.Subv2017-09-151-1/+3
| | * Kernel/Memory: Switch the current page table when a new process is scheduled.Subv2017-09-101-0/+10
| * | Kernel/Threads: Don't immediately switch to the new main thread when loading a new process.Subv2017-08-221-5/+1
| |/
* | loader: Various improvements for NSO/NRO loaders.bunnei2017-10-101-1/+1
* | kernel: Various threading fixes to support 64-bit addressing.bunnei2017-09-301-3/+3
|/
* ResultVal: Remove MoveFrom()Yuri Kunde Schlesner2017-06-191-2/+2
* Kernel: Move HandleTable to a separate fileYuri Kunde Schlesner2017-05-301-0/+1
* Kernel: Centralize error definitions in errors.hYuri Kunde Schlesner2017-05-251-8/+16
* Threads: Check the process' resource limit for the max allowed priority when creating a thread and remove the priority clamping code.Subv2017-01-111-8/+2
* Thread: Added priority range checking to svcSetThreadPriority and removed priority clamping code from Thread::SetPriority.Subv2017-01-111-18/+2
* Merge pull request #2410 from Subv/sleepthreadbunnei2017-01-071-0/+4
|\
| * Kernel: Don't attempt to yield execution in SleepThread(0) if there are no available threads to run.Subv2017-01-061-0/+4
* | Merge pull request #2408 from Subv/priority_boostingbunnei2017-01-061-27/+0
|\ \
| * | Kernel: Removed the priority boost code for starved threads.Subv2017-01-051-27/+0
| |/
* / Kernel: Remove some unused functions.Subv2017-01-051-23/+0
|/
* Kernel: Add some asserts to enforce the invariants in the scheduler.Subv2017-01-051-2/+5
* Kernel: Remove Thread::wait_objects_index and use wait_objects to hold all the objects that a thread is waiting on.Subv2017-01-051-0/+5
* Kernel: Use different thread statuses when a thread calls WaitSynchronization1 and WaitSynchronizationN with wait_all = true.Subv2017-01-041-4/+7
* Kernel/Mutex: Propagate thread priority changes to other threads inheriting the priority via mutexesSubv2017-01-041-4/+17
* Kernel/Mutex: Implemented priority inheritance.Subv2017-01-041-3/+3
* Kernel: Object ShouldWait and Acquire calls now take a thread as a parameter.Subv2017-01-041-3/+3
* ThreadContext: Move from "core" to "arm_interface".bunnei2016-12-221-3/+3
* core: Replace "AppCore" nomenclature with just "CPU".bunnei2016-12-221-3/+3
* core: Remove HLE module, consolidate code & various cleanups.bunnei2016-12-221-4/+1
* core: Consolidate core and system state, remove system module & cleanups.bunnei2016-12-221-3/+3
* Thread: remove the thread from the thread list when exitingwwylele2016-12-171-2/+9
* Properly remove a thread from its wait_objects' waitlist when it is awoken by a timeout.Subv2016-12-101-0/+4
* Threading: Reworked the way our scheduler works.Subv2016-12-041-94/+3
* Fix typosRicardo de Almeida Gonzaga2016-10-201-1/+1
* implement wait tree widgetwwylele2016-09-221-0/+4
* Use negative priorities to avoid special-casing the self-includeYuri Kunde Schlesner2016-09-211-1/+1
* Remove empty newlines in #include blocks.Emmanuel Gil Peyrot2016-09-211-3/+1
* Manually tweak source formatting and then re-run clang-formatYuri Kunde Schlesner2016-09-191-4/+2
* Sources: Run clang-format on everything.Emmanuel Gil Peyrot2016-09-181-49/+65
* arm: ResetContext shouldn't be part of ARM_Interface.bunnei2016-09-151-1/+17
* Merge pull request #1869 from wwylele/dont-be-lazyYuri Kunde Schlesner2016-06-291-2/+6
|\
| * Switch context on the same thread if necessarywwylele2016-05-301-2/+6
* | Thread: update timeout when rerunning WaitSynchwwylele2016-06-041-0/+49
|/
* Kernel/Thread: Remove use of Memory::GetPointerMerryMage2016-05-211-1/+1
* Set fpscr for new threadsJannik Vogel2016-05-171-0/+2
* Merge pull request #1695 from Subv/tls_allocbunnei2016-05-131-17/+67
|\
| * Kernel/Threads: Dynamically allocate the TLS region for threads in the BASE region of the linear heap.Subv2016-05-071-17/+67
* | hle: Get rid of global access to g_rescheduleLioncash2016-03-211-1/+2
|/
* SVC: Fixed ArbitrateAddress to behave as it does on hardware.Subv2015-12-281-1/+1
* Kernel: Implement svcGetSystemInfoYuri Kunde Schlesner2015-12-011-0/+3
* Silence -Wsign-compare warnings.Rohit Nirmal2015-10-071-1/+1
* Kernel: Implement svcGetProcessInfo in a basic wayYuri Kunde Schlesner2015-08-161-1/+3
* dyncom: Rename armdefs.h to armstate.hLioncash2015-07-261-1/+1
* Kernel/Scheduling: Clean up a thread's wait_objects when its scheduled.Subv2015-07-211-0/+8
* Ensure all kernel objects are released during shutdownYuri Kunde Schlesner2015-07-171-7/+14
* kernel: Fix svcWaitSynch to always acquire requested wait objects.bunnei2015-06-171-50/+26
* Remove every trailing whitespace from the project (but externals).Emmanuel Gil Peyrot2015-05-291-4/+4
* Kernel: Move reschedules from SVCs to actual mechanisms that reschedule.bunnei2015-05-211-0/+6
* Memmap: Re-organize memory function in two filesYuri Kunde Schlesner2015-05-151-1/+1
* thread: Fix a conditional check in RescheduleLioncash2015-05-141-1/+1
* Merge pull request #748 from Subv/tls_maxbunnei2015-05-121-6/+15
|\
| * Core/Memory: Add TLS support for creating up to 300 threadsSubv2015-05-121-6/+15
* | Merge pull request #751 from yuriks/idle-threadbunnei2015-05-121-27/+19
|\ \
| * | Thread: Remove the idle threadYuri Kunde Schlesner2015-05-121-27/+19
* | | Merge pull request #757 from Subv/schedulingbunnei2015-05-121-0/+2
|\ \ \ | |_|/ |/| |
| * | Core/Scheduling: Prepare the new priority in the thread queue when svcSetPriority is calledSubv2015-05-121-0/+2
| |/
* | Merge pull request #750 from Subv/process_svcYuri Kunde Schlesner2015-05-121-0/+2
|\ \ | |/ |/|
| * Core/HLE: Implemented the SVCs GetProcessId and GetProcessIdOfThreadSubv2015-05-111-0/+2
* | Thread: Correctly set main thread initial stack positionYuri Kunde Schlesner2015-05-111-2/+2
|/
* fixup! Set the TLS address in the schedulerSubv2015-05-111-2/+5
* Core/Memory: Give every emulated thread it's own TLS area.Subv2015-05-111-1/+9
* Memory: Re-organize and rename memory area address constantsYuri Kunde Schlesner2015-05-091-2/+3
* Common: Remove common.hYuri Kunde Schlesner2015-05-071-1/+3
* Kernel: Properly initialize and shutdown all modules.bunnei2015-05-021-2/+8
* Kernel: Implemented priority inheritance for mutexes.bunnei2015-04-101-3/+7
* Thread: Implement priority boost for starved threads.bunnei2015-04-101-12/+36
* Misc cleanup of common and related functionsarchshift2015-02-201-2/+3
* Asserts: break/crash program, fit to style guide; log.h->assert.harchshift2015-02-111-8/+6
* Scheduler refactor Pt. 1Kevin Hartman2015-02-101-185/+175
* Kernel: Stop creating useless Handles during object creationYuri Kunde Schlesner2015-02-021-8/+0
* Kernel: Make WaitObjects share ownership of Threads waiting on themYuri Kunde Schlesner2015-02-021-0/+3
* Explicitly instantiate constructors/destructors for Kernel objectsYuri Kunde Schlesner2015-02-021-2/+2
* Mutex: Replace g_mutex_held_locks with a set inside ThreadYuri Kunde Schlesner2015-02-021-0/+3
* Kernel: Introduce unique Object ids for debuggingYuri Kunde Schlesner2015-02-021-5/+5
* Kernel: Use separate Handle tables for CoreTiming userdataYuri Kunde Schlesner2015-02-021-11/+11
* Thread: Modernize two functions that slipped through previous rebasesYuri Kunde Schlesner2015-02-021-5/+4
* arm: Clean up ARMul_StateLioncash2015-02-011-1/+1
* Thread: Fix WaitSynchronization1 to not set register 1 on thread wakeup.bunnei2015-01-221-15/+28
* Thread: Use std::find in CheckWait_WaitObject.bunnei2015-01-221-4/+5
* Mutex: Cleanup and remove redundant code.bunnei2015-01-221-1/+1
* Kernel: Renamed some functions for clarity.bunnei2015-01-221-1/+1
* Kernel: Changed "ShouldWait" to return bool and "Acquire" to return void.bunnei2015-01-221-7/+5
* WaitObject: Renamed "Wait" to "ShouldWait", made "ShouldWait" and "Acquire" pure virtual.bunnei2015-01-221-2/+2
* Kernel: Moved Wait and Acquire to WaitObject, added way to retrieve a WaitObject safely.bunnei2015-01-221-1/+1
* AddressArbiter: Changed to Kernel::Object, big cleanup, removed code that made no sense.bunnei2015-01-221-17/+25
* Kernel: Get rid of WaitTypes and simplify lots of code, removing hacks.bunnei2015-01-221-46/+19
* WaitSynchronizationN: Refactor to fix several bugsbunnei2015-01-221-33/+28
* Kernel: Separate WaitSynchronization into Wait and Acquire methods.bunnei2015-01-221-1/+5
* WaitSynchronizationN: Implement return valuesbunnei2015-01-221-19/+75
* Thread: Keep track of multiple wait objects.bunnei2015-01-221-11/+24
* Kernel: Added WaitObject and changed "waitable" objects inherit from it.bunnei2015-01-221-9/+2
* Merge pull request #466 from Subv/wakebunnei2015-01-111-0/+3
|\
| * Thread: Prevent waking a thread multiple times.Subv2015-01-111-0/+3
* | Kernel: Start using boost::intrusive_ptr for lifetime managementYuri Kunde Schlesner2015-01-091-33/+30
|/
* Thread: Fix nullptr access in a logging functionYuri Kunde Schlesner2015-01-091-1/+2
* Thread: Rename thread_queue => thread_listYuri Kunde Schlesner2015-01-091-6/+6
* Thread: Reduce use of Handles and move some funcs to inside the class.Yuri Kunde Schlesner2015-01-091-213/+127
* Kernel: Move Thread's definition to the header fileYuri Kunde Schlesner2015-01-091-51/+9
* Move ThreadContext to core/core.h and deal with the falloutYuri Kunde Schlesner2015-01-091-4/+5
* SVC: Fixed SleepThread.Subv2015-01-091-8/+32
* Threads: Use a dummy idle thread when no other are ready.Subv2015-01-081-1/+22
* Common: Clean up ThreadQueueListYuri Kunde Schlesner2015-01-071-1/+1
* Kernel: New handle managerYuri Kunde Schlesner2014-12-281-1/+2
* Kernel: Replace GetStaticHandleType by HANDLE_TYPE constantsYuri Kunde Schlesner2014-12-281-2/+2
* Rename ObjectPool to HandleTableYuri Kunde Schlesner2014-12-281-11/+11
* Merge pull request #291 from purpasmart96/licensebunnei2014-12-211-1/+1
|\
| * License changepurpasmart962014-12-211-1/+1
* | Thread: Wait current thread on svc_SleepThreadbunnei2014-12-211-20/+33
* | Kernel: Implement support for current thread pseudo-handleYuri Kunde Schlesner2014-12-201-2/+1
|/
* Convert old logging calls to new logging macrosYuri Kunde Schlesner2014-12-131-12/+12
* Merge pull request #256 from Subv/mutexbunnei2014-12-111-0/+4
|\
| * Mutex: Release all held mutexes when a thread exits.Subv2014-12-071-0/+4
* | Thread: Fixed to wait on address when in arbitration.bunnei2014-12-091-10/+19
|/
* Threads: Remove a redundant function.Subv2014-12-041-9/+1
* Threads: Implemented a sequential thread idSubv2014-12-041-3/+13
* SVC: Implemented GetThreadId.Subv2014-12-041-0/+16
* Thread: Check that thread is actually in "wait state" when verifying wait.bunnei2014-11-261-1/+1
* Use pointers instead of passing handles around in some functions.Yuri Kunde Schlesner2014-11-241-19/+15
* Remove duplicated docs/update them for changed parameters.Yuri Kunde Schlesner2014-11-241-5/+0
* HLE: Revamp error handling throrough the HLE codeYuri Kunde Schlesner2014-11-241-21/+30
* Merge pull request #211 from linkmauve/masterbunnei2014-11-191-19/+19
|\
| * Remove trailing spaces in every file but the ones imported from SkyEye, AOSP or generatedEmmanuel Gil Peyrot2014-11-191-19/+19
* | Add static to some variablesLioncash2014-11-191-22/+22
|/
* Add `override` keyword through the code.Yuri Kunde Schlesner2014-10-261-4/+4
* core: Prune redundant includesarchshift2014-09-091-3/+0
* Threading: Fix thread starting to execute first instruction correctly.bunnei2014-08-281-0/+5
* Core: Alter the kernel string functions to use std::string instead of const char*.Lioncash2014-08-181-10/+7
* Thread: Added more descriptive comment to WaitCurrentThread.bunnei2014-08-071-1/+5
* Thread: Added functions to resume threads from address arbitration.bunnei2014-07-091-0/+37
* Thread: Renamed occurrences of "t" to "thread" to improve readability.bunnei2014-06-131-48/+45
* Thread: Cleaned up VerifyWait, fixed issue where nullptr msg could unnecessarily be logged.bunnei2014-06-131-9/+7
* HLE: Removed usnused EatCycles function.bunnei2014-06-131-9/+0
* Thread: Moved position of * in arguments.bunnei2014-06-131-2/+2
* Thread: Updated VerifyWait to be more readable (but functionally the same).bunnei2014-06-131-4/+3
* HLE: Updated all uses of NULL to nullptr (to be C++11 compliant)bunnei2014-06-131-7/+7
* HLE: Updated various handle debug assertions to be more clear.bunnei2014-06-131-2/+2
* Kernel: Updated several member functions to be constbunnei2014-06-131-3/+3
* Thread: Fixed bug with ResetThread where cpu_registers[15] was being incorrectly setbunnei2014-06-131-1/+1
* Kernel: Made SyncRequest not pure virtual, with a default implementation of error (as this is not required for all kernel objects)bunnei2014-06-131-10/+0
* Kernel: Added real support for thread and event blockingbunnei2014-06-131-33/+88
* svc: added GetThreadPriority and SetThreadPriority, added (incomplete) DuplicateHandle supportbunnei2014-06-021-0/+45
* kernel: changed main thread priority to default, updated Kernel::Reschedule to use PrepareReschedulebunnei2014-06-021-3/+3
* thread: updated Reschedule to sit at a synchronization barrier when no other threads are ready for executionbunnei2014-06-011-0/+18
* kernel: added WaitSynchronization method to Kernel::Objectbunnei2014-05-271-0/+11
* kernel: updated SyncRequest to take boolean thread wait result as a parameterbunnei2014-05-271-2/+6
* kernel: add a SyncRequest method to KernelObject for use with svcSendSyncRequestbunnei2014-05-271-0/+5
* thread: renamed "WaitCurThread" to "WaitCurrentThread", removed unused "reason" argumentbunnei2014-05-231-2/+2
* thread: removed unused SwitchContext/Reschedule reason field, added missing arg parameter to SVC CreateThreadbunnei2014-05-231-3/+3
* kernel: refactored function naming to remove "__" prefixbunnei2014-05-231-39/+39
* thread: moved ThreadStatus/WaitType to header, added support for arg on CreateThread, added correct CPSR resetbunnei2014-05-231-34/+15
* thread: fixed bug where result of __NextThread was not being properly checked when NULLbunnei2014-05-221-1/+1
* thread: added correct lowest thread priority, added a thread priority check, and added some commentsbunnei2014-05-211-0/+3
* thread: exposed ResumeThreadFromWait function for use in other kernel modulesbunnei2014-05-211-8/+8
* thread: moved threading calls to the Kernel namespacebunnei2014-05-211-89/+95
* ARM_Interface: added SaveContext and LoadContext functions for HLE thread switchingbunnei2014-05-211-36/+2
* renamed "syscall" module to "svc" (more accurate naming)bunnei2014-05-211-1/+1
* thread: whitespace change - fixed * and & placementbunnei2014-05-211-25/+25
* - created a Kernel namespacebunnei2014-05-211-9/+9
* - moved Handle/Result definitions to kernel.hbunnei2014-05-191-2/+0
* changed a commentbunnei2014-05-171-1/+1
* - added enum ThreadProcessorIdbunnei2014-05-171-51/+90
* - replaced KERNELOBJECT_MAX_NAME_LENGTH with KERNEL_MAX_NAME_LENGTHbunnei2014-05-171-4/+5
* completely gutted/refactored threading code to be simplerbunnei2014-05-161-616/+228
* - added helper function for __KernelCreateThreadbunnei2014-05-151-4/+70
* fixed thread reset to not set stack addressbunnei2014-05-141-1/+1
* various cleanups / remove unused codebunnei2014-05-141-65/+28
* added a bunch of threading code, recycled from PPSSPP, with lots of hacks in for 3DS... doesn't really do much yet. Just a jumping off pointbunnei2014-05-141-64/+524
* added initial kernel/thread modulesbunnei2014-05-101-0/+228