diff --git a/1c988769-68cd-42e9-a58b-7beecb65cdfd/bin/ps.lua b/1c988769-68cd-42e9-a58b-7beecb65cdfd/bin/ps.lua new file mode 100644 index 0000000..a89093e
1 | local process = require('process') | |
---|---|---|
2 | ||
3 | ||
4 | local tree = {['<root>'] = {children = {}}} | |
5 | local procs = process.list() | |
6 | for i = 1, procs.n do | |
7 | local proc = procs[i] | |
8 | tree[proc.name] = {proc = proc, children = {}} | |
9 | end | |
10 | for i = 1, procs.n do | |
11 | local proc = procs[i] | |
12 | table.insert(tree[proc.parent or '<root>'].children, tree[proc.name]) | |
13 | end | |
14 | ||
15 | local function show(t, prefix) | |
16 | if t.proc then | |
17 | print(string.format('%s - %s: %s', prefix, t.proc.name, t.proc.command)) | |
18 | prefix = prefix .. ' ' | |
19 | end | |
20 | for i = 1, #t.children do | |
21 | show(t.children[i], prefix) | |
22 | end | |
23 | end | |
24 | ||
25 | show(tree['<root>'], '') |
diff --git a/1c988769-68cd-42e9-a58b-7beecb65cdfd/etc/procnames.txt b/1c988769-68cd-42e9-a58b-7beecb65cdfd/etc/procnames.txt new file mode 100644 index 0000000..5bee04c
1 | aaron | |
---|---|---|
2 | abigail | |
3 | abraham | |
4 | ada | |
5 | adam | |
6 | addie | |
7 | adele | |
8 | adrian | |
9 | adriana | |
10 | adrienne | |
11 | agnes | |
12 | aida | |
13 | aimee | |
14 | al | |
15 | alan | |
16 | albert | |
17 | alberta | |
18 | alberto | |
19 | alejandro | |
20 | alex | |
21 | alexander | |
22 | alexandra | |
23 | alexis | |
24 | alfonso | |
25 | alfred | |
26 | alfredo | |
27 | alice | |
28 | alicia | |
29 | alisha | |
30 | alison | |
31 | allan | |
32 | allen | |
33 | allison | |
34 | alma | |
35 | alton | |
36 | alvin | |
37 | alyssa | |
38 | amanda | |
39 | amber | |
40 | amelia | |
41 | amy | |
42 | ana | |
43 | andre | |
44 | andrea | |
45 | andres | |
46 | andrew | |
47 | andy | |
48 | angel | |
49 | angela | |
50 | angelica | |
51 | angelina | |
52 | angelo | |
53 | angie | |
54 | anita | |
55 | ann | |
56 | anna | |
57 | anne | |
58 | annette | |
59 | annie | |
60 | anthony | |
61 | antoinette | |
62 | antonia | |
63 | antonio | |
64 | april | |
65 | archie | |
66 | arlene | |
67 | armando | |
68 | arnold | |
69 | arthur | |
70 | arturo | |
71 | ashley | |
72 | aubrey | |
73 | audrey | |
74 | aurora | |
75 | austin | |
76 | barbara | |
77 | barry | |
78 | beatrice | |
79 | becky | |
80 | belinda | |
81 | ben | |
82 | benjamin | |
83 | bennie | |
84 | benny | |
85 | bernadette | |
86 | bernard | |
87 | bernice | |
88 | bertha | |
89 | bessie | |
90 | beth | |
91 | bethany | |
92 | betsy | |
93 | bettie | |
94 | betty | |
95 | beulah | |
96 | beverly | |
97 | bill | |
98 | billie | |
99 | billy | |
100 | blake | |
101 | blanca | |
102 | blanche | |
103 | bob | |
104 | bobbie | |
105 | bobby | |
106 | bonita | |
107 | bonnie | |
108 | brad | |
109 | bradley | |
110 | brandi | |
111 | brandon | |
112 | brandy | |
113 | brenda | |
114 | brent | |
115 | brett | |
116 | brian | |
117 | bridget | |
118 | brittany | |
119 | brittney | |
120 | brooke | |
121 | bruce | |
122 | bryan | |
123 | bryant | |
124 | byron | |
125 | caitlin | |
126 | caleb | |
127 | calvin | |
128 | cameron | |
129 | camille | |
130 | candace | |
131 | candice | |
132 | cara | |
133 | carl | |
134 | carla | |
135 | carlos | |
136 | carlton | |
137 | carmen | |
138 | carol | |
139 | carole | |
140 | caroline | |
141 | carolyn | |
142 | carrie | |
143 | carroll | |
144 | cary | |
145 | casey | |
146 | cassandra | |
147 | cassie | |
148 | catherine | |
149 | cathy | |
150 | cecelia | |
151 | cecil | |
152 | cecilia | |
153 | cedric | |
154 | celeste | |
155 | celia | |
156 | cesar | |
157 | chad | |
158 | charlene | |
159 | charles | |
160 | charlie | |
161 | charlotte | |
162 | chelsea | |
163 | cheri | |
164 | cheryl | |
165 | chester | |
166 | chris | |
167 | christa | |
168 | christian | |
169 | christie | |
170 | christina | |
171 | christine | |
172 | christopher | |
173 | christy | |
174 | cindy | |
175 | claire | |
176 | clara | |
177 | clarence | |
178 | clark | |
179 | claude | |
180 | claudia | |
181 | clayton | |
182 | cleo | |
183 | clifford | |
184 | clifton | |
185 | clint | |
186 | clinton | |
187 | clyde | |
188 | cody | |
189 | colin | |
190 | colleen | |
191 | connie | |
192 | constance | |
193 | cora | |
194 | corey | |
195 | corinne | |
196 | cory | |
197 | courtney | |
198 | craig | |
199 | cristina | |
200 | crystal | |
201 | curtis | |
202 | cynthia | |
203 | daisy | |
204 | dale | |
205 | dallas | |
206 | damon | |
207 | dan | |
208 | dana | |
209 | daniel | |
210 | danielle | |
211 | danny | |
212 | darla | |
213 | darlene | |
214 | darrel | |
215 | darrell | |
216 | darren | |
217 | darryl | |
218 | daryl | |
219 | dave | |
220 | david | |
221 | dawn | |
222 | dean | |
223 | deanna | |
224 | debbie | |
225 | debora | |
226 | deborah | |
227 | debra | |
228 | delbert | |
229 | delia | |
230 | della | |
231 | delores | |
232 | deloris | |
233 | dena | |
234 | denise | |
235 | dennis | |
236 | derek | |
237 | derrick | |
238 | desiree | |
239 | devin | |
240 | dewey | |
241 | diana | |
242 | diane | |
243 | dianna | |
244 | dianne | |
245 | dina | |
246 | dixie | |
247 | dolores | |
248 | dominic | |
249 | dominique | |
250 | don | |
251 | donald | |
252 | donna | |
253 | donnie | |
254 | dora | |
255 | doreen | |
256 | doris | |
257 | dorothy | |
258 | dorthy | |
259 | doug | |
260 | douglas | |
261 | doyle | |
262 | drew | |
263 | duane | |
264 | dustin | |
265 | dwayne | |
266 | dwight | |
267 | earl | |
268 | earnest | |
269 | ebony | |
270 | ed | |
271 | eddie | |
272 | edgar | |
273 | edith | |
274 | edmund | |
275 | edna | |
276 | eduardo | |
277 | edward | |
278 | edwin | |
279 | effie | |
280 | eileen | |
281 | elaine | |
282 | elbert | |
283 | eleanor | |
284 | elena | |
285 | elias | |
286 | elisa | |
287 | elisabeth | |
288 | elizabeth | |
289 | ella | |
290 | ellen | |
291 | ellis | |
292 | elmer | |
293 | eloise | |
294 | elsa | |
295 | elsie | |
296 | elva | |
297 | elvira | |
298 | emily | |
299 | emma | |
300 | enrique | |
301 | eric | |
302 | erica | |
303 | erick | |
304 | erik | |
305 | erika | |
306 | erin | |
307 | erma | |
308 | ernest | |
309 | ernestine | |
310 | ernesto | |
311 | ervin | |
312 | essie | |
313 | estella | |
314 | estelle | |
315 | esther | |
316 | ethel | |
317 | etta | |
318 | eugene | |
319 | eugenia | |
320 | eula | |
321 | eunice | |
322 | eva | |
323 | evan | |
324 | evelyn | |
325 | everett | |
326 | faith | |
327 | fannie | |
328 | faye | |
329 | felicia | |
330 | felipe | |
331 | felix | |
332 | fern | |
333 | fernando | |
334 | flora | |
335 | florence | |
336 | floyd | |
337 | forrest | |
338 | frances | |
339 | francine | |
340 | francis | |
341 | francisca | |
342 | francisco | |
343 | frank | |
344 | frankie | |
345 | franklin | |
346 | fred | |
347 | freda | |
348 | freddie | |
349 | frederick | |
350 | fredrick | |
351 | gabriel | |
352 | gail | |
353 | gale | |
354 | garrett | |
355 | garry | |
356 | gary | |
357 | gayle | |
358 | gene | |
359 | geneva | |
360 | genevieve | |
361 | geoffrey | |
362 | george | |
363 | georgia | |
364 | gerald | |
365 | geraldine | |
366 | gerard | |
367 | gerardo | |
368 | gertrude | |
369 | gilbert | |
370 | gilberto | |
371 | gina | |
372 | ginger | |
373 | gladys | |
374 | glen | |
375 | glenda | |
376 | glenn | |
377 | gloria | |
378 | goldie | |
379 | gordon | |
380 | grace | |
381 | grant | |
382 | greg | |
383 | gregg | |
384 | gregory | |
385 | gretchen | |
386 | guadalupe | |
387 | guillermo | |
388 | gustavo | |
389 | guy | |
390 | gwen | |
391 | gwendolyn | |
392 | hannah | |
393 | harold | |
394 | harriet | |
395 | harry | |
396 | harvey | |
397 | hattie | |
398 | hazel | |
399 | heather | |
400 | hector | |
401 | heidi | |
402 | helen | |
403 | helene | |
404 | henrietta | |
405 | henry | |
406 | herbert | |
407 | herman | |
408 | hilda | |
409 | holly | |
410 | homer | |
411 | hope | |
412 | horace | |
413 | howard | |
414 | hubert | |
415 | hugh | |
416 | hugo | |
417 | ian | |
418 | ida | |
419 | ignacio | |
420 | ina | |
421 | inez | |
422 | ingrid | |
423 | ira | |
424 | irene | |
425 | iris | |
426 | irma | |
427 | irving | |
428 | isaac | |
429 | isabel | |
430 | ismael | |
431 | israel | |
432 | iva | |
433 | ivan | |
434 | jack | |
435 | jackie | |
436 | jacob | |
437 | jacqueline | |
438 | jacquelyn | |
439 | jaime | |
440 | jake | |
441 | james | |
442 | jamie | |
443 | jan | |
444 | jana | |
445 | jane | |
446 | janelle | |
447 | janet | |
448 | janette | |
449 | janice | |
450 | janie | |
451 | janis | |
452 | jared | |
453 | jasmine | |
454 | jason | |
455 | javier | |
456 | jay | |
457 | jean | |
458 | jeanette | |
459 | jeanne | |
460 | jeannette | |
461 | jeannie | |
462 | jeff | |
463 | jeffery | |
464 | jeffrey | |
465 | jenifer | |
466 | jenna | |
467 | jennie | |
468 | jennifer | |
469 | jenny | |
470 | jeremiah | |
471 | jeremy | |
472 | jermaine | |
473 | jerome | |
474 | jerry | |
475 | jesse | |
476 | jessica | |
477 | jessie | |
478 | jesus | |
479 | jewel | |
480 | jewell | |
481 | jill | |
482 | jim | |
483 | jimmie | |
484 | jimmy | |
485 | jo | |
486 | joan | |
487 | joann | |
488 | joanna | |
489 | joanne | |
490 | jodi | |
491 | jody | |
492 | joe | |
493 | joel | |
494 | joey | |
495 | johanna | |
496 | john | |
497 | johnathan | |
498 | johnnie | |
499 | johnny | |
500 | jon | |
501 | jonathan | |
502 | jonathon | |
503 | jordan | |
504 | jorge | |
505 | jose | |
506 | josefina | |
507 | joseph | |
508 | josephine | |
509 | josh | |
510 | joshua | |
511 | josie | |
512 | joy | |
513 | joyce | |
514 | juan | |
515 | juana | |
516 | juanita | |
517 | judith | |
518 | judy | |
519 | julia | |
520 | julian | |
521 | julie | |
522 | julio | |
523 | julius | |
524 | june | |
525 | justin | |
526 | kara | |
527 | karen | |
528 | kari | |
529 | karin | |
530 | karl | |
531 | karla | |
532 | kate | |
533 | katherine | |
534 | kathleen | |
535 | kathryn | |
536 | kathy | |
537 | katie | |
538 | katrina | |
539 | kay | |
540 | kayla | |
541 | keith | |
542 | kelley | |
543 | kelli | |
544 | kellie | |
545 | kelly | |
546 | kelsey | |
547 | kelvin | |
548 | ken | |
549 | kendra | |
550 | kenneth | |
551 | kenny | |
552 | kent | |
553 | kerri | |
554 | kerry | |
555 | kevin | |
556 | kim | |
557 | kimberly | |
558 | kirk | |
559 | kris | |
560 | krista | |
561 | kristen | |
562 | kristi | |
563 | kristie | |
564 | kristin | |
565 | kristina | |
566 | kristine | |
567 | kristopher | |
568 | kristy | |
569 | krystal | |
570 | kurt | |
571 | kyle | |
572 | lana | |
573 | lance | |
574 | larry | |
575 | latasha | |
576 | latonya | |
577 | latoya | |
578 | laura | |
579 | laurel | |
580 | lauren | |
581 | laurence | |
582 | laurie | |
583 | laverne | |
584 | lawrence | |
585 | leah | |
586 | lee | |
587 | leigh | |
588 | lela | |
589 | leland | |
590 | lena | |
591 | lenora | |
592 | leo | |
593 | leon | |
594 | leona | |
595 | leonard | |
596 | leroy | |
597 | lesley | |
598 | leslie | |
599 | lester | |
600 | leticia | |
601 | levi | |
602 | lewis | |
603 | lila | |
604 | lillian | |
605 | lillie | |
606 | linda | |
607 | lindsay | |
608 | lindsey | |
609 | lionel | |
610 | lisa | |
611 | lloyd | |
612 | lois | |
613 | lola | |
614 | lonnie | |
615 | lora | |
616 | loren | |
617 | lorena | |
618 | lorene | |
619 | lorenzo | |
620 | loretta | |
621 | lori | |
622 | lorna | |
623 | lorraine | |
624 | lottie | |
625 | lou | |
626 | louis | |
627 | louise | |
628 | lourdes | |
629 | lowell | |
630 | lucas | |
631 | lucia | |
632 | lucille | |
633 | lucinda | |
634 | lucy | |
635 | luis | |
636 | luke | |
637 | lula | |
638 | lupe | |
639 | luther | |
640 | luz | |
641 | lydia | |
642 | lyle | |
643 | lynda | |
644 | lynette | |
645 | lynn | |
646 | lynne | |
647 | mabel | |
648 | mable | |
649 | mack | |
650 | madeline | |
651 | mae | |
652 | maggie | |
653 | malcolm | |
654 | mamie | |
655 | mandy | |
656 | manuel | |
657 | marc | |
658 | marcella | |
659 | marcia | |
660 | marco | |
661 | marcos | |
662 | marcus | |
663 | margaret | |
664 | margarita | |
665 | margie | |
666 | marguerite | |
667 | maria | |
668 | marian | |
669 | marianne | |
670 | marie | |
671 | marilyn | |
672 | marina | |
673 | mario | |
674 | marion | |
675 | marissa | |
676 | marjorie | |
677 | mark | |
678 | marla | |
679 | marlene | |
680 | marsha | |
681 | marshall | |
682 | marta | |
683 | martha | |
684 | martin | |
685 | marty | |
686 | marvin | |
687 | mary | |
688 | maryann | |
689 | mathew | |
690 | matt | |
691 | matthew | |
692 | mattie | |
693 | maude | |
694 | maureen | |
695 | maurice | |
696 | max | |
697 | maxine | |
698 | may | |
699 | megan | |
700 | meghan | |
701 | melanie | |
702 | melba | |
703 | melinda | |
704 | melissa | |
705 | melody | |
706 | melvin | |
707 | mercedes | |
708 | meredith | |
709 | merle | |
710 | michael | |
711 | micheal | |
712 | michele | |
713 | michelle | |
714 | miguel | |
715 | mike | |
716 | mildred | |
717 | milton | |
718 | mindy | |
719 | minnie | |
720 | miranda | |
721 | miriam | |
722 | misty | |
723 | mitchell | |
724 | molly | |
725 | mona | |
726 | monica | |
727 | monique | |
728 | morgan | |
729 | morris | |
730 | muriel | |
731 | myra | |
732 | myrna | |
733 | myron | |
734 | myrtle | |
735 | nadine | |
736 | nancy | |
737 | naomi | |
738 | natalie | |
739 | natasha | |
740 | nathan | |
741 | nathaniel | |
742 | neal | |
743 | neil | |
744 | nellie | |
745 | nelson | |
746 | nettie | |
747 | nicholas | |
748 | nichole | |
749 | nick | |
750 | nicolas | |
751 | nicole | |
752 | nikki | |
753 | nina | |
754 | noah | |
755 | noel | |
756 | nora | |
757 | norma | |
758 | norman | |
759 | olga | |
760 | olive | |
761 | oliver | |
762 | olivia | |
763 | ollie | |
764 | omar | |
765 | opal | |
766 | ora | |
767 | orlando | |
768 | orville | |
769 | oscar | |
770 | otis | |
771 | owen | |
772 | pablo | |
773 | pam | |
774 | pamela | |
775 | pat | |
776 | patrice | |
777 | patricia | |
778 | patrick | |
779 | patsy | |
780 | patti | |
781 | patty | |
782 | paul | |
783 | paula | |
784 | paulette | |
785 | pauline | |
786 | pearl | |
787 | pedro | |
788 | peggy | |
789 | penny | |
790 | perry | |
791 | pete | |
792 | peter | |
793 | philip | |
794 | phillip | |
795 | phyllis | |
796 | polly | |
797 | preston | |
798 | priscilla | |
799 | rachael | |
800 | rachel | |
801 | rafael | |
802 | ralph | |
803 | ramiro | |
804 | ramon | |
805 | ramona | |
806 | randall | |
807 | randolph | |
808 | randy | |
809 | raquel | |
810 | raul | |
811 | ray | |
812 | raymond | |
813 | reba | |
814 | rebecca | |
815 | rebekah | |
816 | regina | |
817 | reginald | |
818 | rena | |
819 | rene | |
820 | renee | |
821 | rex | |
822 | rhonda | |
823 | ricardo | |
824 | richard | |
825 | rick | |
826 | rickey | |
827 | ricky | |
828 | rita | |
829 | robbie | |
830 | robert | |
831 | roberta | |
832 | roberto | |
833 | robin | |
834 | robyn | |
835 | rochelle | |
836 | roderick | |
837 | rodney | |
838 | rodolfo | |
839 | rogelio | |
840 | roger | |
841 | roland | |
842 | ron | |
843 | ronald | |
844 | ronda | |
845 | ronnie | |
846 | roosevelt | |
847 | rosa | |
848 | rosalie | |
849 | rosario | |
850 | rose | |
851 | rosemarie | |
852 | rosemary | |
853 | rosetta | |
854 | rosie | |
855 | ross | |
856 | roxanne | |
857 | roy | |
858 | ruben | |
859 | ruby | |
860 | rudolph | |
861 | rudy | |
862 | rufus | |
863 | russell | |
864 | ruth | |
865 | ryan | |
866 | sabrina | |
867 | sadie | |
868 | sallie | |
869 | sally | |
870 | salvador | |
871 | salvatore | |
872 | sam | |
873 | samantha | |
874 | sammy | |
875 | samuel | |
876 | sandra | |
877 | sandy | |
878 | santiago | |
879 | santos | |
880 | sara | |
881 | sarah | |
882 | scott | |
883 | sean | |
884 | sergio | |
885 | seth | |
886 | shane | |
887 | shannon | |
888 | shari | |
889 | sharon | |
890 | shaun | |
891 | shawn | |
892 | shawna | |
893 | sheila | |
894 | shelby | |
895 | sheldon | |
896 | shelia | |
897 | shelley | |
898 | shelly | |
899 | sheri | |
900 | sherman | |
901 | sherri | |
902 | sherrie | |
903 | sherry | |
904 | sheryl | |
905 | shirley | |
906 | sidney | |
907 | silvia | |
908 | simon | |
909 | sonia | |
910 | sonja | |
911 | sonya | |
912 | sophia | |
913 | sophie | |
914 | spencer | |
915 | stacey | |
916 | stacie | |
917 | stacy | |
918 | stanley | |
919 | stella | |
920 | stephanie | |
921 | stephen | |
922 | steve | |
923 | steven | |
924 | stewart | |
925 | stuart | |
926 | sue | |
927 | susan | |
928 | susie | |
929 | suzanne | |
930 | sylvester | |
931 | sylvia | |
932 | tabitha | |
933 | tamara | |
934 | tami | |
935 | tamika | |
936 | tammie | |
937 | tammy | |
938 | tanya | |
939 | tara | |
940 | tasha | |
941 | taylor | |
942 | ted | |
943 | terence | |
944 | teresa | |
945 | teri | |
946 | terrance | |
947 | terrence | |
948 | terri | |
949 | terry | |
950 | thelma | |
951 | theodore | |
952 | theresa | |
953 | therese | |
954 | thomas | |
955 | tiffany | |
956 | tim | |
957 | timothy | |
958 | tina | |
959 | toby | |
960 | todd | |
961 | tom | |
962 | tomas | |
963 | tommie | |
964 | tommy | |
965 | toni | |
966 | tony | |
967 | tonya | |
968 | tracey | |
969 | traci | |
970 | tracie | |
971 | tracy | |
972 | travis | |
973 | trevor | |
974 | tricia | |
975 | trina | |
976 | trisha | |
977 | troy | |
978 | tyler | |
979 | tyrone | |
980 | valerie | |
981 | van | |
982 | vanessa | |
983 | velma | |
984 | vera | |
985 | verna | |
986 | vernon | |
987 | veronica | |
988 | vicki | |
989 | vickie | |
990 | vicky | |
991 | victor | |
992 | victoria | |
993 | vincent | |
994 | viola | |
995 | violet | |
996 | virgil | |
997 | virginia | |
998 | vivian | |
999 | wade | |
1000 | wallace | |
1001 | walter | |
1002 | wanda | |
1003 | warren | |
1004 | wayne | |
1005 | wendell | |
1006 | wendy | |
1007 | wesley | |
1008 | whitney | |
1009 | wilbert | |
1010 | wilbur | |
1011 | wilfred | |
1012 | willard | |
1013 | william | |
1014 | willie | |
1015 | willis | |
1016 | wilma | |
1017 | wilson | |
1018 | winifred | |
1019 | wm | |
1020 | woodrow | |
1021 | yolanda | |
1022 | yvette | |
1023 | yvonne | |
1024 | zachary |
diff --git a/1c988769-68cd-42e9-a58b-7beecb65cdfd/lib/process.lua b/1c988769-68cd-42e9-a58b-7beecb65cdfd/lib/process.lua index 3ed63c4..9f8df3c 100644
5 | 5 | local running = setmetatable({}, {__mode="k"}) |
---|---|---|
6 | 6 | local coroutine_create = coroutine.create |
7 | 7 | |
8 | local function newName() | |
9 | local f, reason = io.open('/etc/procnames.txt') | |
10 | if not f then | |
11 | error(reason) | |
12 | end | |
13 | local extant = {} | |
14 | for _, proc in pairs(running) do | |
15 | extant[proc.name] = true | |
16 | end | |
17 | local lineno = 1 | |
18 | local ret | |
19 | while true do | |
20 | local line = f:read() | |
21 | if not line then | |
22 | break | |
23 | end | |
24 | if not extant[line] then | |
25 | if math.random(lineno) == 1 then | |
26 | ret = line | |
27 | end | |
28 | lineno = lineno + 1 | |
29 | end | |
30 | end | |
31 | if not ret then | |
32 | error('no process names available') | |
33 | end | |
34 | return ret | |
35 | end | |
36 | ||
37 | local function processForUserConsumption(self) | |
38 | local ret = { | |
39 | path = self.path, | |
40 | env = self.env, | |
41 | command = self.command, | |
42 | data = self.data, | |
43 | name = self.name, | |
44 | } | |
45 | if self.parent then | |
46 | ret.parent = self.parent.name | |
47 | end | |
48 | return ret | |
49 | end | |
50 | ||
51 | local function addProcess(co, parent, path, command, env) | |
52 | local data = {} | |
53 | if parent then | |
54 | data = setmetatable(data, {__index=parent.data}) | |
55 | end | |
56 | running[co] = { | |
57 | path = path, | |
58 | command = command, | |
59 | env = env, | |
60 | parent = parent, | |
61 | data = data, | |
62 | instances = setmetatable({}, {__mode="v"}), | |
63 | name = newName(), | |
64 | userConsumable = processForUserConsumption, | |
65 | } | |
66 | return co | |
67 | end | |
68 | ||
8 | 69 | local function findProcess(co) |
9 | 70 | co = co or coroutine.running() |
10 | 71 | for main, process in pairs(running) do |
… | ||
65 | 126 | end |
66 | 127 | return code(...) |
67 | 128 | end) |
68 | running[thread] = { | |
69 | path = path, | |
70 | command = name, | |
71 | env = env, | |
72 | data = setmetatable({}, {__index=process and process.data or nil}), | |
73 | parent = process, | |
74 | instances = setmetatable({}, {__mode="v"}) | |
75 | } | |
129 | addProcess(thread, process, path, name, env) | |
76 | 130 | return thread |
77 | 131 | end |
78 | 132 | |
133 | function process.spawn(f, env, name, path) | |
134 | checkArg(1, f, "function") | |
135 | checkArg(2, env, "table", "nil") | |
136 | checkArg(3, name, "string", "nil") | |
137 | checkArg(4, path, "string", "nil") | |
138 | ||
139 | local process = findProcess() | |
140 | if process then | |
141 | env = env or process.env | |
142 | end | |
143 | if not path then | |
144 | path = '<function>' | |
145 | end | |
146 | env = setmetatable({}, {__index=env or _G}) | |
147 | return addProcess(coroutine_create(f), process, path, name, env) | |
148 | end | |
149 | ||
79 | 150 | function process.running(level) -- kept for backwards compat, prefer process.info |
80 | 151 | local info = process.info(level) |
81 | 152 | if info then |
… | ||
96 | 167 | end |
97 | 168 | end |
98 | 169 | if process then |
99 | return |
|
170 | return process:userConsumable() | |
100 | 171 | end |
101 | 172 | end |
102 | 173 | |
174 | function process.list() | |
175 | local ret = {n = 0} | |
176 | for _, proc in pairs(running) do | |
177 | ret.n = ret.n + 1 | |
178 | ret[ret.n] = proc:userConsumable() | |
179 | end | |
180 | return ret | |
181 | end | |
182 | ||
103 | 183 | function process.install(path, name) |
104 | 184 | _G.coroutine.create = function(f) |
105 | 185 | local co = coroutine_create(f) |
… | ||
111 | 191 | env = env or select(2, process.running()) |
112 | 192 | return load(ld, source, mode, env) |
113 | 193 | end |
114 | local thread = coroutine.running() | |
115 | running[thread] = { | |
116 | path = path, | |
117 | command = name, | |
118 | env = _ENV, | |
119 | data = {}, | |
120 | instances = setmetatable({}, {__mode="v"}) | |
121 | } | |
194 | addProcess(coroutine.running(), nil, path, name, _ENV) | |
122 | 195 | end |
123 | 196 | |
124 | return process | |
125 | 197 | No newline at end of file |