Пример #1
0
ssize_t RequestInjectionData::fetchAndClearFlags() {
  ssize_t flags;
  for (;;) {
    flags = atomic_acquire_load(getConditionFlags());
    const ssize_t newFlags =
      hhvm ? (flags & RequestInjectionData::EventHookFlag) : 0;
    if (__sync_bool_compare_and_swap(getConditionFlags(), flags, newFlags)) {
      break;
    }
  }
  return flags;
}
Пример #2
0
void RequestInjectionData::reset() {
  __sync_fetch_and_and(getConditionFlags(), 0);
  coverage = RuntimeOption::RecordCodeCoverage;
  debugger = false;
  debuggerIntr = false;
  while (!interrupts.empty()) interrupts.pop();
}
Пример #3
0
void RequestInjectionData::reset() {
  getConditionFlags()->store(0);
  m_coverage = RuntimeOption::RecordCodeCoverage;
  m_debugger = false;
  m_debuggerIntr = false;
  updateJit();
  while (!interrupts.empty()) interrupts.pop();
}
Пример #4
0
void RequestInjectionData::setInterceptFlag() {
  __sync_fetch_and_or(getConditionFlags(),
                      RequestInjectionData::InterceptFlag);
}
Пример #5
0
void RequestInjectionData::clearPendingExceptionFlag() {
  __sync_fetch_and_and(getConditionFlags(),
                       ~RequestInjectionData::PendingExceptionFlag);
}
Пример #6
0
void RequestInjectionData::setPendingExceptionFlag() {
  __sync_fetch_and_or(getConditionFlags(),
                      RequestInjectionData::PendingExceptionFlag);
}
Пример #7
0
void RequestInjectionData::setTimedOutFlag() {
  getConditionFlags()->fetch_or(RequestInjectionData::TimedOutFlag);
}
Пример #8
0
void RequestInjectionData::clearEventHookFlag() {
  __sync_fetch_and_and(getConditionFlags(),
                       ~RequestInjectionData::EventHookFlag);
}
Пример #9
0
void RequestInjectionData::clearPendingExceptionFlag() {
  getConditionFlags()->fetch_and(~RequestInjectionData::PendingExceptionFlag);
}
Пример #10
0
ssize_t RequestInjectionData::fetchAndClearFlags() {
  return __sync_fetch_and_and(getConditionFlags(),
                              (RequestInjectionData::EventHookFlag |
                               RequestInjectionData::InterceptFlag));
}
Пример #11
0
void RequestInjectionData::clearEventHookFlag() {
  getConditionFlags()->fetch_and(~RequestInjectionData::EventHookFlag);
}
Пример #12
0
void RequestInjectionData::setPendingExceptionFlag() {
  getConditionFlags()->fetch_or(RequestInjectionData::PendingExceptionFlag);
}
Пример #13
0
void RequestInjectionData::setEventHookFlag() {
  getConditionFlags()->fetch_or(RequestInjectionData::EventHookFlag);
}
Пример #14
0
void RequestInjectionData::setSignaledFlag() {
  getConditionFlags()->fetch_or(RequestInjectionData::SignaledFlag);
}
Пример #15
0
void RequestInjectionData::clearTimedOutFlag() {
  getConditionFlags()->fetch_and(~RequestInjectionData::TimedOutFlag);
}
Пример #16
0
void RequestInjectionData::clearInterceptFlag() {
  __sync_fetch_and_and(getConditionFlags(),
                       ~RequestInjectionData::InterceptFlag);
}
Пример #17
0
void RequestInjectionData::setMemExceededFlag() {
  __sync_fetch_and_or(getConditionFlags(),
                      RequestInjectionData::MemExceededFlag);
}
Пример #18
0
void RequestInjectionData::setDebuggerSignalFlag() {
  __sync_fetch_and_or(getConditionFlags(),
                      RequestInjectionData::DebuggerSignalFlag);
}
Пример #19
0
void RequestInjectionData::setSignaledFlag() {
  __sync_fetch_and_or(getConditionFlags(),
                      RequestInjectionData::SignaledFlag);
}
Пример #20
0
void RequestInjectionData::setInterceptFlag() {
  getConditionFlags()->fetch_or(RequestInjectionData::InterceptFlag);
}
Пример #21
0
void RequestInjectionData::setMemExceededFlag() {
  getConditionFlags()->fetch_or(RequestInjectionData::MemExceededFlag);
}
Пример #22
0
void RequestInjectionData::setTimedOutFlag() {
  __sync_fetch_and_or(getConditionFlags(),
                      RequestInjectionData::TimedOutFlag);
}
Пример #23
0
void RequestInjectionData::clearInterceptFlag() {
  getConditionFlags()->fetch_and(~RequestInjectionData::InterceptFlag);
}
Пример #24
0
void RequestInjectionData::setEventHookFlag() {
  __sync_fetch_and_or(getConditionFlags(),
                      RequestInjectionData::EventHookFlag);
}
Пример #25
0
void RequestInjectionData::setDebuggerSignalFlag() {
  getConditionFlags()->fetch_or(RequestInjectionData::DebuggerSignalFlag);
}
Пример #26
0
ssize_t RequestInjectionData::fetchAndClearFlags() {
  return getConditionFlags()->fetch_and(RequestInjectionData::EventHookFlag |
                                        RequestInjectionData::InterceptFlag);
}
Пример #27
0
void RequestInjectionData::clearTimedOutFlag() {
  __sync_fetch_and_and(getConditionFlags(),
                       ~RequestInjectionData::TimedOutFlag);
}