| 105 | } |
| 106 | |
| 107 | ThreadControllerState ThreadController::limit() { |
| 108 | ThreadControllerState state(symbols_.size()); |
| 109 | for (auto i = 0; i < symbols_.size(); i++) { |
| 110 | auto symbol = symbols_[i]; |
| 111 | state[i] = reinterpret_cast<int (*)(void)>(symbol->get_sym)(); |
| 112 | reinterpret_cast<void (*)(int)>(symbol->set_sym)(1); |
| 113 | } |
| 114 | return state; |
| 115 | } |
| 116 | |
| 117 | void ThreadController::restore(const ThreadControllerState& state) { |
| 118 | for (auto i = 0; i < symbols_.size(); i++) { |