Mercurial > hg
view contrib/plan9/9mail @ 29783:5d44197c208b
profiling: make profiling functions context managers (API)
This makes profiling more flexible since we can now call multiple
functions when a profiler is active. But the real reason for this
is to enable a future consumer to profile a function that returns
a generator. We can't do this from the profiling function itself
because functions can either be generators or have return values:
they can't be both. So therefore it isn't possible to have a generic
profiling function that can both consume and re-emit a generator
and return a value.
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Sun, 14 Aug 2016 18:25:22 -0700 |
parents | 4bfd3c7160d9 |
children |
line wrap: on
line source
#!/bin/rc # 9mail - Mercurial email wrapper for upas/marshal fn usage { echo >[1=2] usage: mercurial/9mail -f from to [cc] exit usage } from=() cc=() to=() switch($1){ case -f from=$2 case * usage } to=($3) if(~ $#* 4) cc=(-C $4) upasname=$from upas/marshal $cc $to