scheduler.cc (13088:05763ab10391) | scheduler.cc (13093:bea17ab221ef) |
---|---|
1/* 2 * Copyright 2018 Google, Inc. 3 * 4 * Redistribution and use in source and binary forms, with or without 5 * modification, are permitted provided that the following conditions are 6 * met: redistributions of source code must retain the above copyright 7 * notice, this list of conditions and the following disclaimer; 8 * redistributions in binary form must reproduce the above copyright --- 160 unchanged lines hidden (view full) --- 169 // There are no more processes, so return control to evaluate. 170 Fiber::primaryFiber()->run(); 171 } else { 172 _current->popListNode(); 173 // Switch to whatever Fiber is supposed to run this process. All 174 // Fibers which aren't running should be parked at this line. 175 _current->fiber()->run(); 176 // If the current process needs to be manually started, start it. | 1/* 2 * Copyright 2018 Google, Inc. 3 * 4 * Redistribution and use in source and binary forms, with or without 5 * modification, are permitted provided that the following conditions are 6 * met: redistributions of source code must retain the above copyright 7 * notice, this list of conditions and the following disclaimer; 8 * redistributions in binary form must reproduce the above copyright --- 160 unchanged lines hidden (view full) --- 169 // There are no more processes, so return control to evaluate. 170 Fiber::primaryFiber()->run(); 171 } else { 172 _current->popListNode(); 173 // Switch to whatever Fiber is supposed to run this process. All 174 // Fibers which aren't running should be parked at this line. 175 _current->fiber()->run(); 176 // If the current process needs to be manually started, start it. |
177 if (_current && _current->needsStart()) | 177 if (_current && _current->needsStart()) { 178 _current->needsStart(false); |
178 _current->run(); | 179 _current->run(); |
180 } |
|
179 } 180 if (_current && _current->excWrapper) { 181 // Make sure this isn't a method process. 182 assert(!_current->needsStart()); 183 auto ew = _current->excWrapper; 184 _current->excWrapper = nullptr; 185 ew->throw_it(); 186 } --- 170 unchanged lines hidden --- | 181 } 182 if (_current && _current->excWrapper) { 183 // Make sure this isn't a method process. 184 assert(!_current->needsStart()); 185 auto ew = _current->excWrapper; 186 _current->excWrapper = nullptr; 187 ew->throw_it(); 188 } --- 170 unchanged lines hidden --- |