1 1-15-1998 Ben Woodard <bwoodard@cisco.com> 2 While you have all been limping along with the current version of npadmin. I 3 have been really busy quitely working on it. The biggest change is 4 that I made was I made the program handle multiple printers on the 5 command line. The way that I implemented this was to make the program 6 multithreaded. Yes every bad thing that people say about threads is 7 true. They are a real pain to debug but I think that I have finally 8 gotten the knack of it. Overall, I am very pleased with the 9 performance. I was able to query literally hundreds of printers 10 without putting undue strain on my workstation. In the past, the only 11 way to do this was to basically forkbomb a your computer. You would 12 fork off a whole bunch of npadmin's and it would really tax your 13 system for a couple of minutes. With this new multithreaded 14 implementation I can very easily query 200 printers without phasing my 15 workstation. 16 17 I expect that this multithreading is going to introduce some porting 18 problems. One knob that might need to be set differently on different 19 OS's is found in npadmin.C and is called MAXTHREADS. This is the 20 number of concurrent worker threads that npadmin can have. On my 21 laptop running Linux I have had no problem with setting this to 100 22 which seems to be just fine. I expect that other OS's which don't have 23 quite as generous threads implementation will need this turned down a 24 bit. In general, the higher this number can be the faster npadmin can 25 be when given large numbers of IP addresses. 26 27 The purpose for this change is so that I can do some rather nifty 28 scripts that find out the status of a whole bunch of printers all at 29 once. I need to do this to do some interesting things at Cisco.