process.cc (13288:f1c04129f709) | process.cc (13306:2196f4a8201f) |
---|---|
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 --- 192 unchanged lines hidden (view full) --- 201 SC_REPORT_ERROR( 202 "(E574) throw_it not allowed unless simulation is running ", 203 name()); 204 } 205 206 if (inc_kids) 207 forEachKid([&exc](Process *p) { p->throw_it(exc, true); }); 208 | 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 --- 192 unchanged lines hidden (view full) --- 201 SC_REPORT_ERROR( 202 "(E574) throw_it not allowed unless simulation is running ", 203 name()); 204 } 205 206 if (inc_kids) 207 forEachKid([&exc](Process *p) { p->throw_it(exc, true); }); 208 |
209 // Only inject an exception into threads that have started. 210 if (!_needsStart) 211 injectException(exc); | 209 if (_needsStart || _terminated) 210 return; 211 212 injectException(exc); |
212} 213 214void 215Process::injectException(ExceptionWrapperBase &exc) 216{ 217 excWrapper = &exc; 218 scheduler.runNow(this); 219}; --- 218 unchanged lines hidden --- | 213} 214 215void 216Process::injectException(ExceptionWrapperBase &exc) 217{ 218 excWrapper = &exc; 219 scheduler.runNow(this); 220}; --- 218 unchanged lines hidden --- |