X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=bindings%2Ftcl%2Ftclrrd.c;h=a98a2d7c2ac23f82847e8991a5287f4550f74d03;hb=b3eb1aa71199eaffd9766306b4543647bdd1eeee;hp=7f604d980e96b6bb7138ed042dd6ef01b471848f;hpb=24a1cb649dd3b5c5d93fa470ebfe4d88abb2af00;p=rrdtool.git diff --git a/bindings/tcl/tclrrd.c b/bindings/tcl/tclrrd.c index 7f604d9..a98a2d7 100644 --- a/bindings/tcl/tclrrd.c +++ b/bindings/tcl/tclrrd.c @@ -230,6 +230,30 @@ static int Rrd_Dump( return TCL_OK; } +/* Thread-safe version */ +static int Rrd_Flushcached( + ClientData __attribute__((unused)) clientData, + Tcl_Interp *interp, + int argc, + CONST84 char *argv[]) +{ + if (argc < 2) { + Tcl_AppendResult(interp, "RRD Error: needs rrd filename", + (char *) NULL); + return TCL_ERROR; + } + + rrd_flushcached(argc, (char**)argv); + + if (rrd_test_error()) { + Tcl_AppendResult(interp, "RRD Error: ", + rrd_get_error(), (char *) NULL); + rrd_clear_error(); + return TCL_ERROR; + } + + return TCL_OK; +} /* Thread-safe version */ @@ -480,7 +504,7 @@ static int Rrd_Graph( * Must dup() file descriptor so we can fclose(stream), otherwise the fclose() * would close Tcl's file descriptor */ - if ((fd2 = dup((int) fd1)) == -1) { + if ((fd2 = dup((int)fd1)) == -1) { Tcl_AppendResult(interp, "dup() failed for file descriptor associated with \"", argv[1], "\": ", strerror(errno), (char *) NULL); @@ -626,6 +650,7 @@ typedef struct { static CmdInfo rrdCmds[] = { {"Rrd::create", Rrd_Create, 1}, /* Thread-safe version */ {"Rrd::dump", Rrd_Dump, 0}, /* Thread-safe version */ + {"Rrd::flushcached", Rrd_Flushcached, 0}, {"Rrd::last", Rrd_Last, 0}, /* Thread-safe version */ {"Rrd::lastupdate", Rrd_Lastupdate, 0}, /* Thread-safe version */ {"Rrd::update", Rrd_Update, 1}, /* Thread-safe version */