| 2560 | |
| 2561 | |
| 2562 | ProcessReference ProcessManager::use(const UPID& pid) |
| 2563 | { |
| 2564 | if (pid.reference.isSome()) { |
| 2565 | if (std::shared_ptr<ProcessBase*> reference = pid.reference->lock()) { |
| 2566 | return ProcessReference(std::move(reference)); |
| 2567 | } |
| 2568 | } |
| 2569 | |
| 2570 | if (pid.address == __address__) { |
| 2571 | synchronized (processes_mutex) { |
| 2572 | Option<ProcessBase*> process = processes.get(pid.id); |
| 2573 | if (process.isSome()) { |
| 2574 | return ProcessReference(process.get()->reference); |
| 2575 | } |
| 2576 | } |
| 2577 | } |
| 2578 | |
| 2579 | return ProcessReference(); |
| 2580 | } |
| 2581 | |
| 2582 | |
| 2583 | void ProcessManager::handle( |
no test coverage detected