~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/symbol_versioning.py

  • Committer: Robert Collins
  • Date: 2010-07-04 06:22:11 UTC
  • mto: This revision was merged to the branch mainline in revision 5332.
  • Revision ID: robertc@robertcollins.net-20100704062211-tk9hw6bnsn5x47fm
``bzrlib.lsprof.profile`` will no longer silently generate bad threaded
profiles when concurrent profile requests are made. Instead the profile
requests will be serialised. Reentrant requests will now deadlock.
(Robert Collins)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2006, 2007, 2008, 2009 Canonical Ltd
 
1
# Copyright (C) 2006-2010 Canonical Ltd
2
2
#
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
314
314
 
315
315
    :param override: If True, always set the ignore, if False, only set the
316
316
        ignore if there isn't already a filter.
 
317
    :return: A callable to remove the new warnings this added.
317
318
    """
318
319
    import warnings
319
320
    if not override and _check_for_filter(error_only=False):
321
322
        # then skip it.
322
323
        return
323
324
    warnings.filterwarnings('ignore', category=DeprecationWarning)
 
325
    filter = warnings.filters[0]
 
326
    def cleanup():
 
327
        warnings.filters.remove(filter)
 
328
    return cleanup
324
329
 
325
330
 
326
331
def activate_deprecation_warnings(override=True):