Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] Annotation of /sml/trunk/src/runtime/c-libs/smlnj-prof/setpref.c
ViewVC logotype

Annotation of /sml/trunk/src/runtime/c-libs/smlnj-prof/setpref.c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 651 - (view) (download) (as text)

1 : monnier 249 /* setpref.c
2 :     *
3 :     * COPYRIGHT (c) 1996 AT&T Research.
4 :     */
5 :    
6 :     #include "ml-base.h"
7 :     #include "ml-c.h"
8 :     #include "ml-values.h"
9 :     #include "ml-objects.h"
10 :     #include "ml-globals.h"
11 :     #include "cfun-proto-list.h"
12 :     #include "profile.h"
13 :    
14 : blume 569 extern void EnableProfSignals (void);
15 :     extern void DisableProfSignals (void);
16 :    
17 : monnier 249 /* _ml_Prof_setpref : word array option -> unit
18 :     *
19 :     * Set the profile array reference; NONE means that there is no array.
20 :     */
21 :     ml_val_t _ml_Prof_setpref (ml_state_t *msp, ml_val_t arg)
22 :     {
23 :     #ifdef OPSYS_UNIX
24 :     bool_t enabled = (ProfCntArray != ML_unit);
25 :     int i;
26 :    
27 :     if (arg != OPTION_NONE) {
28 :     ProfCntArray = OPTION_get(arg);
29 :     if (! enabled) {
30 :     /* add ProfCntArray to the C roots */
31 :     CRoots[NumCRoots++] = &ProfCntArray;
32 :     /* enable profiling signals */
33 :     EnableProfSignals ();
34 :     }
35 :     }
36 :     else if (enabled) {
37 :     /* remove ProfCntArray from the C roots */
38 :     for (i = 0; i < NumCRoots; i++) {
39 :     if (CRoots[i] == &ProfCntArray) {
40 :     CRoots[i] = CRoots[--NumCRoots];
41 :     break;
42 :     }
43 :     }
44 :     /* disable profiling signals */
45 :     DisableProfSignals ();
46 :     ProfCntArray = ML_unit;
47 :     }
48 :    
49 :     return ML_unit;
50 :     #else
51 :     return RAISE_ERROR(msp, "time profiling not supported");
52 :     #endif
53 :    
54 :     } /* end of _ml_Prof_setpref */
55 :    

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0