Initial add of defaria.com
[clearscm.git] / defaria.com / blogs / Status / 2005 / 11 / forking-in-perl.html
1 <!DOCTYPE html>
2 <html lang="en-us" itemscope itemtype="http://schema.org/Article">
3   <head>
4     <meta charset="utf-8">
5     <meta name="description" content=" Continued to help several users with connecting to the new Controller Clearquest Database for Vinh's users Added Version Tree button to the bin_merge prompt dialog box. Resolved problem with forking from PerlTk...">
6     <meta name="generator" content="Movable Type 5.2.3">
7     <title>Forking in PerlTk - Status</title>
8     <link rel="alternate" type="application/atom+xml" title="Recent Entries" href="http://defaria.com/blogs/Status/atom.xml">
9     <link rel="canonical" href="http://defaria.com/blogs/Status/2005/11/forking-in-perl.html">
10     <meta name="viewport" content="width=device-width,initial-scale=1">
11     <link rel="stylesheet" href="http://defaria.com/blogs/Status/styles.css">
12     <!--[if lt IE 9]>
13     <link rel="stylesheet" href="http://defaria.com/blogs/Status/styles_ie.css">
14     <script src="/mt/mt-static/support/theme_static/rainier/js/html5shiv.js"></script>
15     <![endif]-->
16     
17     <link rel="start" href="http://defaria.com/blogs/Status/">
18
19     <link rel="prev" href="http://defaria.com/blogs/Status/2005/11/remaining-pqa-i.html" title="Remaining PQA Issues/GNATS stripmime">
20     <link rel="next" href="http://defaria.com/blogs/Status/2005/11/bin-mergecreate.html" title="bin_merge/create_snapshot_view/PQA">
21     <!-- Open Graph Protocol -->
22     <meta property="og:type" content="article">
23     <meta property="og:locale" content="en-us">
24     <meta property="og:title" content="Forking in PerlTk">
25     <meta property="og:url" content="http://defaria.com/blogs/Status/2005/11/forking-in-perl.html">
26     <meta property="og:description" content=" Continued to help several users with connecting to the new Controller Clearquest Database for Vinh's users Added Version Tree button to the bin_merge prompt dialog box. Resolved problem with forking from PerlTk...">
27     <meta property="og:site_name" content="Status">
28     <meta property="og:image" content="/mt/mt-static/support/theme_static/rainier/img/siteicon-sample.png">
29     <!-- Metadata -->
30     <meta itemprop="description" content=" Continued to help several users with connecting to the new Controller Clearquest Database for Vinh's users Added Version Tree button to the bin_merge prompt dialog box. Resolved problem with forking from PerlTk...">
31     <link itemprop="url" href="http://defaria.com/blogs/Status/2005/11/forking-in-perl.html">
32     <link itemprop="image" href="/mt/mt-static/support/theme_static/rainier/img/siteicon-sample.png">
33     
34   </head>
35   <body>
36     <div id="container">
37       <div id="container-inner">
38         <header id="header" role="banner">
39           <div id="header-inner">
40             <div id="header-content">
41               <h1>
42                 <a href="http://defaria.com/blogs/Status/">
43
44                   Status
45
46                 </a>
47               </h1>
48               
49             </div>
50
51             <nav role="navigation">
52           <ul>
53             <li><a href="http://defaria.com/blogs/Status/">Home</a></li>
54
55
56           </ul>
57         </nav>
58
59           </div>
60         </header>
61         <div id="content">
62           <div id="content-inner">
63             <ul class="breadcrumb breadcrumb-list">
64               <li class="breadcrumb-list-item"><a href="http://defaria.com/blogs/Status/">Home</a></li>
65               <li class="breadcrumb-list-item">Forking in PerlTk</li>
66             </ul>
67             <div id="individual-main" class="main" role="main">
68               <article id="entry-1748" class="entry entry-asset asset hentry">
69                 <div class="asset-header">
70                   <h2 itemprop="name" class="asset-name entry-title">Forking in PerlTk</h2>
71                   <footer class="asset-meta">
72                     <ul class="asset-meta-list">
73                       <li class="asset-meta-list-item">Posted on <time datetime="2005-11-23T13:59:39-08:00" itemprop="datePublished">November 23, 2005</time></li>
74                       <li class="asset-meta-list-item">by <span class="author entry-author vcard"></span></li>
75
76   
77                       <li class="asset-meta-list-item">in <a itemprop="articleSection" rel="tag" href="http://defaria.com/blogs/Status/broadcom/">Broadcom</a></li>
78   
79
80                    </ul>
81                 </footer>
82                 </div>
83                 <div class="entry-content asset-content" itemprop="articleBody">
84                   <ul>
85   <li>Continued to help several users with connecting to the new Controller Clearquest Database for Vinh's users</li>
86
87   <li>Added Version Tree button to the bin_merge prompt dialog box.</li>
88
89   <li>Resolved problem with forking from PerlTk</li>
90 </ul>
91                   <h2>Forking in PerlTk</h2>
92
93 <p>The issue here is that calling fork(2) in general on Windows just doesn't work well. Clearcase's Perl is based on ActiveState Perl and ActiveState Perl is not the best implementation of Perl. Cygwin's Perl is by far a much better implementation but Cygwin's Perl works from a true Posix environment which is specifically what Cygwin is all about. However Cygwin's Perl does not support PerlTk (I posted on Cygwin's mailing list about this - it would be great if Cygwin would finally support PerlTk) and Cygwin would need to be present on all Windows systems.</p>
94
95 <p>In general, while fork(2) does work under ActiveState is does not work if you have Tk objects created. Chris had suggested to use "start &lt;program&gt;" which is fine - for Windows - but would fail in Unix. I like to wrote my code such that it works on both Windows and Unix. So I tried in vain to get fork to work. However, ActiveState's fork(2) call is horribly broken so I had to code around it like this:</p>
96
97 <div class="code"><pre>
98 sub VersionTree {
99   my $file = shift;
100
101   my $cmd =  "cleartool lsvtree -graphical $file";
102
103   if ($^O =~ /mswin|cygwin/i) {
104     system "start /b $cmd";
105   } else {
106     my $pid = fork;
107
108     return if $pid;
109
110     system $cmd;
111     exit;
112   } # if
113 } # VersionTree
114 </pre></div>
115                 </div>
116                 <nav class="page-navigation entry-navigation pagination content-nav">
117                   <ul class="page-navigation-list">
118
119                     <li class="page-navigation-list-item page-navigation-prev"><a rel="prev" href="http://defaria.com/blogs/Status/2005/11/remaining-pqa-i.html" title="Remaining PQA Issues/GNATS stripmime">Previous entry</a></li>
120
121
122                     <li class="page-navigation-list-item page-navigation-next"><a rel="next" href="http://defaria.com/blogs/Status/2005/11/bin-mergecreate.html" title="bin_merge/create_snapshot_view/PQA">Next entry</a></li>
123
124                   </ul>
125                 </nav>
126                 <!--
127 <aside id="zenback" class="zenback feedback">
128   Please paste Zenback script code here.
129 </aside>
130 -->
131                 
132                 
133               </article>
134             </div>
135             <aside class="widgets related" role="complementary">
136               <nav class="widget-search widget">
137   <div class="widget-content">
138     <form method="get" id="search" action="http://defaria.com/mt/mt-search.cgi">
139       <div>
140         <input type="text" name="search" value="" placeholder="Search...">
141
142         <input type="hidden" name="IncludeBlogs" value="8">
143
144         <input type="hidden" name="limit" value="20">
145         <button type="submit" name="button">
146           <img alt="Search" src="/mt/mt-static/support/theme_static/rainier/img/search-icon.png">
147         </button>
148       </div>
149     </form>
150   </div>
151 </nav>
152 <nav class="widget-archive-category widget">
153   <h3 class="widget-header">Categories</h3>
154   <div class="widget-content">
155     
156       
157     <ul class="widget-list">
158       
159       
160       <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/ameriquest/">Ameriquest (99)</a>
161       
162       
163       </li>
164       
165     
166       
167       
168       <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/audience/">Audience (3)</a>
169       
170       
171       </li>
172       
173     
174       
175       
176       <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/broadcom/">Broadcom (76)</a>
177       
178       
179       </li>
180       
181     
182       
183       
184       <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/gpdb/">GPDB (35)</a>
185       
186       
187       </li>
188       
189     
190       
191       
192       <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/general-dynamics/">General Dynamics (61)</a>
193       
194       
195       </li>
196       
197     
198       
199       
200       <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/general-electric/">General Electric (13)</a>
201       
202       
203       </li>
204       
205     
206       
207       
208       <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/hewlett-packard/">Hewlett Packard (13)</a>
209       
210       
211       </li>
212       
213     
214       
215       
216       <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/lynuxworks/">LynuxWorks (162)</a>
217       
218       
219       </li>
220       
221     
222       
223       
224       <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/pqa/">PQA (35)</a>
225       
226       
227       </li>
228       
229     
230       
231       
232       <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/salira/">Salira (79)</a>
233       
234       
235       </li>
236       
237     
238       
239       
240       <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/tellabs/">Tellabs (2)</a>
241       
242       
243       </li>
244       
245     
246       
247       
248       <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/texas-instruments/">Texas Instruments (31)</a>
249       
250       
251       </li>
252       
253     </ul>
254       
255     
256   </div>
257 </nav>
258   
259
260 <nav class="widget-archive-dropdown widget">
261   <h3 class="widget-header">Archives</h3>
262   <div class="widget-content">
263     <select>
264       <option>Select a Month...</option>
265     
266       <option value="http://defaria.com/blogs/Status/2016/02/">February 2016</option>
267     
268   
269     
270       <option value="http://defaria.com/blogs/Status/2014/09/">September 2014</option>
271     
272   
273     
274       <option value="http://defaria.com/blogs/Status/2014/04/">April 2014</option>
275     
276   
277     
278       <option value="http://defaria.com/blogs/Status/2014/03/">March 2014</option>
279     
280   
281     
282       <option value="http://defaria.com/blogs/Status/2013/02/">February 2013</option>
283     
284   
285     
286       <option value="http://defaria.com/blogs/Status/2012/09/">September 2012</option>
287     
288   
289     
290       <option value="http://defaria.com/blogs/Status/2012/08/">August 2012</option>
291     
292   
293     
294       <option value="http://defaria.com/blogs/Status/2012/05/">May 2012</option>
295     
296   
297     
298       <option value="http://defaria.com/blogs/Status/2012/04/">April 2012</option>
299     
300   
301     
302       <option value="http://defaria.com/blogs/Status/2012/02/">February 2012</option>
303     
304   
305     
306       <option value="http://defaria.com/blogs/Status/2012/01/">January 2012</option>
307     
308   
309     
310       <option value="http://defaria.com/blogs/Status/2011/10/">October 2011</option>
311     
312   
313     
314       <option value="http://defaria.com/blogs/Status/2011/07/">July 2011</option>
315     
316   
317     
318       <option value="http://defaria.com/blogs/Status/2010/09/">September 2010</option>
319     
320   
321     
322       <option value="http://defaria.com/blogs/Status/2010/08/">August 2010</option>
323     
324   
325     
326       <option value="http://defaria.com/blogs/Status/2010/04/">April 2010</option>
327     
328   
329     
330       <option value="http://defaria.com/blogs/Status/2010/03/">March 2010</option>
331     
332   
333     
334       <option value="http://defaria.com/blogs/Status/2010/02/">February 2010</option>
335     
336   
337     
338       <option value="http://defaria.com/blogs/Status/2009/05/">May 2009</option>
339     
340   
341     
342       <option value="http://defaria.com/blogs/Status/2009/04/">April 2009</option>
343     
344   
345     
346       <option value="http://defaria.com/blogs/Status/2008/07/">July 2008</option>
347     
348   
349     
350       <option value="http://defaria.com/blogs/Status/2008/05/">May 2008</option>
351     
352   
353     
354       <option value="http://defaria.com/blogs/Status/2008/04/">April 2008</option>
355     
356   
357     
358       <option value="http://defaria.com/blogs/Status/2008/03/">March 2008</option>
359     
360   
361     
362       <option value="http://defaria.com/blogs/Status/2008/02/">February 2008</option>
363     
364   
365     
366       <option value="http://defaria.com/blogs/Status/2008/01/">January 2008</option>
367     
368   
369     
370       <option value="http://defaria.com/blogs/Status/2007/12/">December 2007</option>
371     
372   
373     
374       <option value="http://defaria.com/blogs/Status/2007/11/">November 2007</option>
375     
376   
377     
378       <option value="http://defaria.com/blogs/Status/2007/10/">October 2007</option>
379     
380   
381     
382       <option value="http://defaria.com/blogs/Status/2007/09/">September 2007</option>
383     
384   
385     
386       <option value="http://defaria.com/blogs/Status/2007/08/">August 2007</option>
387     
388   
389     
390       <option value="http://defaria.com/blogs/Status/2007/07/">July 2007</option>
391     
392   
393     
394       <option value="http://defaria.com/blogs/Status/2007/06/">June 2007</option>
395     
396   
397     
398       <option value="http://defaria.com/blogs/Status/2007/05/">May 2007</option>
399     
400   
401     
402       <option value="http://defaria.com/blogs/Status/2007/04/">April 2007</option>
403     
404   
405     
406       <option value="http://defaria.com/blogs/Status/2007/03/">March 2007</option>
407     
408   
409     
410       <option value="http://defaria.com/blogs/Status/2007/01/">January 2007</option>
411     
412   
413     
414       <option value="http://defaria.com/blogs/Status/2006/12/">December 2006</option>
415     
416   
417     
418       <option value="http://defaria.com/blogs/Status/2006/11/">November 2006</option>
419     
420   
421     
422       <option value="http://defaria.com/blogs/Status/2006/10/">October 2006</option>
423     
424   
425     
426       <option value="http://defaria.com/blogs/Status/2006/09/">September 2006</option>
427     
428   
429     
430       <option value="http://defaria.com/blogs/Status/2006/07/">July 2006</option>
431     
432   
433     
434       <option value="http://defaria.com/blogs/Status/2006/06/">June 2006</option>
435     
436   
437     
438       <option value="http://defaria.com/blogs/Status/2006/05/">May 2006</option>
439     
440   
441     
442       <option value="http://defaria.com/blogs/Status/2006/04/">April 2006</option>
443     
444   
445     
446       <option value="http://defaria.com/blogs/Status/2006/03/">March 2006</option>
447     
448   
449     
450       <option value="http://defaria.com/blogs/Status/2006/02/">February 2006</option>
451     
452   
453     
454       <option value="http://defaria.com/blogs/Status/2006/01/">January 2006</option>
455     
456   
457     
458       <option value="http://defaria.com/blogs/Status/2005/12/">December 2005</option>
459     
460   
461     
462       <option value="http://defaria.com/blogs/Status/2005/11/">November 2005</option>
463     
464   
465     
466       <option value="http://defaria.com/blogs/Status/2005/10/">October 2005</option>
467     
468   
469     
470       <option value="http://defaria.com/blogs/Status/2005/09/">September 2005</option>
471     
472   
473     
474       <option value="http://defaria.com/blogs/Status/2005/08/">August 2005</option>
475     
476   
477     
478       <option value="http://defaria.com/blogs/Status/2005/07/">July 2005</option>
479     
480   
481     
482       <option value="http://defaria.com/blogs/Status/2005/06/">June 2005</option>
483     
484   
485     
486       <option value="http://defaria.com/blogs/Status/2005/05/">May 2005</option>
487     
488   
489     
490       <option value="http://defaria.com/blogs/Status/2005/04/">April 2005</option>
491     
492   
493     
494       <option value="http://defaria.com/blogs/Status/2005/03/">March 2005</option>
495     
496   
497     
498       <option value="http://defaria.com/blogs/Status/2005/02/">February 2005</option>
499     
500   
501     
502       <option value="http://defaria.com/blogs/Status/2005/01/">January 2005</option>
503     
504   
505     
506       <option value="http://defaria.com/blogs/Status/2004/12/">December 2004</option>
507     
508   
509     
510       <option value="http://defaria.com/blogs/Status/2004/09/">September 2004</option>
511     
512   
513     
514       <option value="http://defaria.com/blogs/Status/2004/08/">August 2004</option>
515     
516   
517     
518       <option value="http://defaria.com/blogs/Status/2004/07/">July 2004</option>
519     
520   
521     
522       <option value="http://defaria.com/blogs/Status/2004/06/">June 2004</option>
523     
524   
525     
526       <option value="http://defaria.com/blogs/Status/2004/05/">May 2004</option>
527     
528   
529     
530       <option value="http://defaria.com/blogs/Status/2004/04/">April 2004</option>
531     
532   
533     
534       <option value="http://defaria.com/blogs/Status/2004/03/">March 2004</option>
535     
536   
537     
538       <option value="http://defaria.com/blogs/Status/2004/02/">February 2004</option>
539     
540   
541     
542       <option value="http://defaria.com/blogs/Status/2004/01/">January 2004</option>
543     
544   
545     
546       <option value="http://defaria.com/blogs/Status/2003/12/">December 2003</option>
547     
548   
549     
550       <option value="http://defaria.com/blogs/Status/2003/11/">November 2003</option>
551     
552     </select>
553   </div>
554 </nav>
555     
556   
557
558 <div class="widget-syndication widget section">
559   <div class="widget-content">
560     <p><img src="http://defaria.com/mt/mt-static/images/status_icons/feed.gif" alt="Subscribe to feed" width="9" height="9" /> <a href="http://defaria.com/blogs/Status/atom.xml">Subscribe to this blog's feed</a></p>
561
562   </div>
563 </div>
564
565             </aside>
566           </div>
567         </div>
568         <footer id="footer" role="contentinfo">
569           <div id="footer-inner">
570             <div id="footer-content">
571   <nav role="navigation">
572           <ul>
573             <li><a href="http://defaria.com/blogs/Status/">Home</a></li>
574
575
576           </ul>
577         </nav>
578
579   <p class="license">&copy; Copyright 2016.</p>
580   <p class="poweredby">Powered by <a href="http://www.movabletype.org/">Movable Type</a></p>
581 </div>
582           </div>
583         </footer>
584       </div>
585     </div>
586     <script src="http://defaria.com/mt/mt-static/jquery/jquery.min.js"></script>
587     <script src="http://defaria.com/blogs/Status/mt-theme-scale2.js"></script>
588   </body>
589 </html>