Skip to content

Instantly share code, notes, and snippets.

@sandeepkumar-skb
Created August 9, 2021 16:11
Show Gist options
  • Save sandeepkumar-skb/0f6be07925430323d22994c320814164 to your computer and use it in GitHub Desktop.
Save sandeepkumar-skb/0f6be07925430323d22994c320814164 to your computer and use it in GitHub Desktop.
from contextlib import contextmanager
# Context Manager using object
class ContextManager():
def __init__(self, name):
self.name = name
def __enter__(self, ):
print('nvtx_marker on for: {}'.format(self.name))
return self
def __exit__(self,exc_type, exc_value, exc_traceback):
print("nvtx_marker off for: {}".format(self.name))
with ContextManager("path1") as manager:
with ContextManager("path2") as manager:
print("with statement block")
print("")
print("#########################################")
print("")
# context manager using decorator
@contextmanager
def ContextManager_alt(name):
print("nvtx marker on for {}".format(name))
yield
print("nvtx marker off for {}".format(name))
with ContextManager_alt("path1") as manager:
with ContextManager_alt("path2") as manager:
print("with statement block")
@sandeepkumar-skb
Copy link
Author

Output:

nvtx_marker on for: path1
nvtx_marker on for: path2
with statement block
nvtx_marker off for: path2
nvtx_marker off for: path1

#########################################

nvtx marker on for path1
nvtx marker on for path2
with statement block
nvtx marker off for path2
nvtx marker off for path1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment