Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | use "int fd" for file descriptors, like everywhere else in the code. Mark some parameters as unused |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | core-8-6-branch |
Files: | files | file ages | folders |
SHA3-256: |
99ed4a4c1ac99ea95ec54cd823f96c13 |
User & Date: | jan.nijtmans 2024-06-12 09:31:22 |
Context
2024-06-12
| ||
09:59 | Add METHOD headers to documentation. Other doc cleanup, backported from 8.7/9.0 check-in: 85133b3e9c user: jan.nijtmans tags: core-8-6-branch | |
09:31 | use "int fd" for file descriptors, like everywhere else in the code. Mark some parameters as unused check-in: 99ed4a4c1a user: jan.nijtmans tags: core-8-6-branch | |
2024-06-11
| ||
09:49 | Add some METHOD headers check-in: 9bfd2f8c88 user: jan.nijtmans tags: core-8-6-branch | |
Changes
Changes to tests/oo.test.
︙ | ︙ | |||
4423 4424 4425 4426 4427 4428 4429 | my rpc write otto-$hdl } } set ::result {} } -body { # In this case, sub-objects are deleted while the destructor is running and # the destroy is neat, so things work sanely. Error follows standard Tcl | | | 4423 4424 4425 4426 4427 4428 4429 4430 4431 4432 4433 4434 4435 4436 4437 | my rpc write otto-$hdl } } set ::result {} } -body { # In this case, sub-objects are deleted while the destructor is running and # the destroy is neat, so things work sanely. Error follows standard Tcl # error flow route; bgerror is not used. bgerrorIntercept ::result { set FH [RpcClient new] $FH create_bug $FH destroy update } join $result \n |
︙ | ︙ |
Changes to unix/tclUnixPipe.c.
︙ | ︙ | |||
74 75 76 77 78 79 80 | /* * This structure describes the channel type structure for command pipe based * I/O: */ static const Tcl_ChannelType pipeChannelType = { | | | | | | | | | | | | | | | 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 | /* * This structure describes the channel type structure for command pipe based * I/O: */ static const Tcl_ChannelType pipeChannelType = { "pipe", TCL_CHANNEL_VERSION_5, TCL_CLOSE2PROC, /* Close proc. */ PipeInputProc, PipeOutputProc, NULL, /* Seek proc. */ NULL, /* Set option proc. */ NULL, /* Get option proc. */ PipeWatchProc, PipeGetHandleProc, PipeClose2Proc, PipeBlockModeProc, NULL, /* Flush proc. */ NULL, /* Bubbled event handler proc. */ NULL, /* Seek proc. */ NULL, /* Thread action proc. */ NULL /* Truncation proc. */ }; /* *---------------------------------------------------------------------- * * TclpMakeFile -- * |
︙ | ︙ | |||
279 280 281 282 283 284 285 286 287 288 289 290 291 292 | Tcl_Obj * TclpTempFileNameForLibrary( Tcl_Interp *interp, /* Tcl interpreter. */ Tcl_Obj *path) /* Path name of the library in the VFS. */ { Tcl_Obj *retval = TclpTempFileName(); if (retval == NULL) { Tcl_SetObjResult(interp, Tcl_ObjPrintf( "couldn't create temporary file: %s", Tcl_PosixError(interp))); } return retval; | > | 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 | Tcl_Obj * TclpTempFileNameForLibrary( Tcl_Interp *interp, /* Tcl interpreter. */ Tcl_Obj *path) /* Path name of the library in the VFS. */ { Tcl_Obj *retval = TclpTempFileName(); (void)path; if (retval == NULL) { Tcl_SetObjResult(interp, Tcl_ObjPrintf( "couldn't create temporary file: %s", Tcl_PosixError(interp))); } return retval; |
︙ | ︙ | |||
823 824 825 826 827 828 829 | int numPids, /* The number of pids in the pid array. */ Tcl_Pid *pidPtr) /* An array of process identifiers. Allocated * by the caller, freed when the channel is * closed or the processes are detached (in a * background exec). */ { char channelName[16 + TCL_INTEGER_SPACE]; | | | 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 | int numPids, /* The number of pids in the pid array. */ Tcl_Pid *pidPtr) /* An array of process identifiers. Allocated * by the caller, freed when the channel is * closed or the processes are detached (in a * background exec). */ { char channelName[16 + TCL_INTEGER_SPACE]; int fd; PipeState *statePtr = (PipeState *)ckalloc(sizeof(PipeState)); int mode; statePtr->inFile = readFile; statePtr->outFile = writeFile; statePtr->errorFile = errorFile; statePtr->numPids = numPids; |
︙ | ︙ | |||
847 848 849 850 851 852 853 | } /* * Use one of the fds associated with the channel as the channel id. */ if (readFile) { | | | | | | | 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 | } /* * Use one of the fds associated with the channel as the channel id. */ if (readFile) { fd = GetFd(readFile); } else if (writeFile) { fd = GetFd(writeFile); } else if (errorFile) { fd = GetFd(errorFile); } else { fd = 0; } /* * For backward compatibility with previous versions of Tcl, we use * "file%d" as the base name for pipes even though it would be more * natural to use "pipe%d". */ snprintf(channelName, sizeof(channelName), "file%d", fd); statePtr->channel = Tcl_CreateChannel(&pipeChannelType, channelName, statePtr, mode); return statePtr->channel; } /* *---------------------------------------------------------------------- |
︙ | ︙ | |||
893 894 895 896 897 898 899 900 901 902 903 904 905 906 | Tcl_CreatePipe( Tcl_Interp *interp, /* Errors returned in result. */ Tcl_Channel *rchan, /* Returned read side. */ Tcl_Channel *wchan, /* Returned write side. */ int flags) /* Reserved for future use. */ { int fileNums[2]; if (pipe(fileNums) < 0) { Tcl_SetObjResult(interp, Tcl_ObjPrintf("pipe creation failed: %s", Tcl_PosixError(interp))); return TCL_ERROR; } | > | 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 | Tcl_CreatePipe( Tcl_Interp *interp, /* Errors returned in result. */ Tcl_Channel *rchan, /* Returned read side. */ Tcl_Channel *wchan, /* Returned write side. */ int flags) /* Reserved for future use. */ { int fileNums[2]; (void)flags; if (pipe(fileNums) < 0) { Tcl_SetObjResult(interp, Tcl_ObjPrintf("pipe creation failed: %s", Tcl_PosixError(interp))); return TCL_ERROR; } |
︙ | ︙ | |||
1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 | int objc, /* Number of arguments. */ Tcl_Obj *const *objv) /* Argument strings. */ { Tcl_Channel chan; PipeState *pipePtr; int i; Tcl_Obj *resultPtr; if (objc > 2) { Tcl_WrongNumArgs(interp, 1, objv, "?channelId?"); return TCL_ERROR; } if (objc == 1) { | > | 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 | int objc, /* Number of arguments. */ Tcl_Obj *const *objv) /* Argument strings. */ { Tcl_Channel chan; PipeState *pipePtr; int i; Tcl_Obj *resultPtr; (void)dummy; if (objc > 2) { Tcl_WrongNumArgs(interp, 1, objv, "?channelId?"); return TCL_ERROR; } if (objc == 1) { |
︙ | ︙ |