def _trackInstanceAndCheckForConcurrencyViolation(self):
global g_max_concurrency, g_max_concurrency_raise_exception<EOL>assert g_max_concurrency is not None<EOL>assert self not in self._clsOutstandingInstances, repr(self)<EOL>self._creationTracebackString = traceback.format_stack()<EOL>if self._clsNumOutstanding >= g_max_concurrency:<EOL><INDENT>errorMsg = ("<STR_LIT>"<EOL>"<STR_LIT>"<EOL>"<STR_LIT>") % (<EOL>self._clsNumOutstanding, g_max_concurrency, self,<EOL>len(self._clsOutstandingInstances), self._clsOutstandingInstances,)<EOL>self._logger.error(errorMsg)<EOL>if g_max_concurrency_raise_exception:<EOL><INDENT>raise ConcurrencyExceededError(errorMsg)<EOL><DEDENT><DEDENT>self._clsOutstandingInstances.add(self)<EOL>self._addedToInstanceSet = True<EOL>return<EOL>
Check for concurrency violation and add self to
        _clsOutstandingInstances.

        ASSUMPTION: Called from constructor BEFORE _clsNumOutstanding is
        incremented