ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/AnyEvent/TODO
Revision: 1.2
Committed: Thu May 15 07:51:25 2008 UTC (15 years, 11 months ago) by elmex
Branch: MAIN
CVS Tags: rel-4_151, rel-4_152, rel-4_91, rel-4_04, rel-4_23, rel-7_05, rel-4_21, rel-7_07, rel-7_01, rel-7_02, rel-7_03, rel-7_08, rel-7_09, rel-4_412, rel-4_81, rel-4_83, rel-4_82, rel-4_86, rel-4_352, rel-5_112, rel-4_351, rel-7_16, rel-4_14, rel-4_15, rel-7_13, rel-4_13, rel-7_11, rel-5_251, rel-0_85, rel-4_331, rel-6_0, rel-6_1, rel-4_231, rel-4_233, rel-4_232, rel-4_8, rel-4_234, rel-4_4, rel-4_0, rel-6_11, rel-6_12, rel-6_13, rel-5_261, rel-4_05, rel-7_15, rel-7_14, rel-4_12, rel-7_12, rel-4_11, rel-6_02, rel-6_01, rel-5_271, rel-5_28, rel-5_29, rel-7_0, rel-5_21, rel-5_22, rel-5_23, rel-5_24, rel-5_26, rel-5_27, rel-5_1, rel-5_0, rel-5_3, rel-5_2, rel-7_04, rel-3_5, rel-4_22, rel-5_201, rel-5_202, rel-5_31, rel-4_161, rel-4_160, rel-5_111, rel-4_881, rel-4_411, rel-4_9, rel-5_01, rel-6_14, rel-4_45, rel-4_41, rel-4_42, rel-4_1, rel-4_2, rel-4_88, rel-4_3, rel-5_11, rel-5_12, rel-4_31, rel-4_32, rel-4_33, rel-4_34, rel-4_35, rel-4_03, HEAD
Changes since 1.1: +0 -6 lines
Log Message:
added small example script I wrote for a comment perlmonks.org.

File Contents

# Content
1 -
2 02 10:21:00 <schmorp> ich wüsste nicht, wie man es anders machen kann
3 02 10:21:11 <schmorp> ach ja
4 02 10:21:23 <schmorp> man muss auch nen "custom"-read prependen/appenden können
5 02 10:21:33 <schmorp> außerdem wäre ein resource-limit nicht dumm
6 02 10:21:34 <schmorp> also
7 02 10:21:38 <schmorp> "maximal 16mb zeilen lesen"
8 02 10:21:41 <schmorp> oder allgemein
9 02 10:21:47 <schmorp> "rbuf darf nie > 16mb werden"
10 02 10:22:01 <elmex> ja, das waehre praktisch
11 02 10:22:06 <schmorp> praktisch nicht
12 02 10:22:08 <schmorp> aber wichtig :)
13 02 10:22:11 <elmex> jo
14 02 10:22:19 <schmorp> für die sicherheit
15 02 10:22:23 <schmorp> prkatisch ists eher im wege
16 02 10:22:25 <elmex> wenn rbuf > 16mb dann liest er nicht mehr? oder was soll dann passieren?
17 02 10:23:00 <elmex> nicht mehr lesen waehre schwierig, da muesste man den watcher entfernen und wieder reinstallieren wenn der
18 buffer leerer is
19 02 10:23:20 <schmorp> wozu?
20 02 10:23:33 <schmorp> leerer(?)
21 02 10:23:39 <schmorp> wie kann er dnen leerer werden?
22 02 10:23:42 <elmex> eben :)
23 02 10:23:53 <elmex> wenn die daten verarbeitet wurden und jemand den buffer leere gemacht hat
24 02 10:23:57 <schmorp> ah, das ist ein verständnisproblem
25 02 10:24:01 <schmorp> es geht um harte fehler
26 02 10:24:04 <schmorp> sicherheit!
27 02 10:24:06 <schmorp> denial-of-service
28 02 10:24:14 <schmorp> nicht um speicherersparnis
29 02 10:24:21 <schmorp> wenn du sagst, der rbug darf nie >16mb werden
30 02 10:24:29 <schmorp> dann ist es ein harter fehler/verbindungssbbaruch
31 02 10:24:31 <schmorp> wenbne r größer wird
32 02 10:24:33 <schmorp> dananch ist ende
33 02 10:24:38 <elmex> hmmm, also waehre das beste ein extra callback fuer den fall? und das default evrhalten is ein error und d
34 ann ->close ?
35 02 10:24:46 <schmorp> ich würde sagen on_error
36 02 10:24:48 <schmorp> wie alles andere
37 02 10:24:50 <elmex> hm, ok
38 02 10:24:57 <schmorp> ein fehler ist fatal
39 02 10:24:58 <elmex> sie koennen das limit ja einstellen
40 02 10:25:03 <schmorp> kannst $! auf ENOSPC setzen
41 02 10:25:06 <elmex> ok
42 02 10:25:11 <schmorp> ja, es kann ja per default aus sein von mir aus
43
44 - und ganz wichtig: generell die api fixen
45
46 -
47 02 10:27:36 <schmorp> reply 1
48 02 10:27:38 <schmorp> reply 1, zweiter teil
49 02 10:27:39 <schmorp> reply 2
50 02 10:27:42 <elmex> ahja
51 02 10:27:46 <elmex> genau
52 02 10:27:48 <schmorp> dazu musst du den read vor den reply 2 quetschen
53 02 10:27:54 <elmex> also prependen
54 02 10:27:56 <schmorp> ja
55 02 10:28:02 <elmex> ja, ich dachte halt an den fall:
56 02 10:28:03 <schmorp> eventuell kann man shift/push nehmen als namen
57 02 10:28:19 <schmorp> ausserdem muss es noch einen generic-callback geben
58 02 10:28:28 <schmorp> die frage ist, wie man "progress" feststellt
59 02 10:28:31 <elmex> reply 1, reply 2, und bei reply 1 wird ein zweiter request gemacht wo reply 3 kommt, und der read-cb fuer
60 reply 3 muss halt hinter reply 2
61 02 10:28:37 <schmorp> man könnte z.b. die länge des rbufs vor und anch dme callback checken
62 02 10:28:38 <elmex> in dem fall will man appenden
63 02 10:28:42 <schmorp> wenn sie sich ändert, mach weiter
64 02 10:28:54 <schmorp> elmex: genau
65 02 10:29:07 <schmorp> elmex: deshalb gehen auch keien schemata wie "im callback prependen, ausserhalb appenden"
66 02 10:29:18 <elmex> jo
67 02 10:29:23 <elmex> das is halt protokollabhaengig
68 02 10:29:34 <schmorp> igentlich nicht so
69 02 10:29:42 <schmorp> es hängt davon ab, was dein programm macht
70 02 10:29:45 <schmorp> vom protkoll weniger
71 02 10:29:46 <elmex> was meinst du mit einem generic callback?
72 02 10:29:48 <elmex> ja, stimmt
73 02 10:29:49 <schmorp> denn das ist hier immer tcp
74 02 10:29:57 <schmorp> sprich, reioehenfolge bleibt reihenfolge
75 02 10:30:21 <schmorp> vielleicht wäre es auch nett, einen default-read-callback zu haben
76 02 10:30:28 <schmorp> aber ich denke, das kann on_read erledigen
77 02 10:30:33 <schmorp> d.gh. die queue hat vorrang vor on_read
78 02 10:30:40 <schmorp> aber wenn die queu leer ist, wird on_read aufgerufen
79 02 10:30:44 <elmex> jo
80 02 10:30:45 <schmorp> undd as kannd ann z.b. nichts tun
81 02 10:30:48 <schmorp> außer ein realine pushen
82 02 10:30:54 <schmorp> bzw. prependen :/
83 02 10:31:04 <elmex> hmm
84 02 10:31:08 <schmorp> alsowas, prepend/append doer shift/push
85 02 10:31:21 <schmorp> unshift/push natürlich
86 02 10:31:31 <elmex> was soll der default callback machen?
87 02 10:31:40 <elmex> ich meine, bisher tut on_read einfach in rbuf lesen
88 02 10:31:41 <schmorp> welcher default-callback?
89 02 10:31:49 <elmex> default-read-callback
90 02 10:31:56 <schmorp> es kann keinen geben?
91 02 10:31:57 <elmex> ich kann dir im mom nich ganz forlgen :)
92 02 10:31:59 <schmorp> was kann der auch tun?
93 02 10:32:04 <schmorp> du hats ne socket
94 02 10:32:06 <schmorp> auf der kommen daten
95 02 10:32:10 <schmorp> aber niemand verarbeiotet sie
96 02 10:32:14 <schmorp> trottzdem pufferst du sie
97 02 10:32:16 <schmorp> das macht keinen sinn
98 02 10:32:22 + Muttley joined #schmorp (JOIN, #schmorp)
99 02 10:32:23 <elmex> hmm, das tu ich auch net
100 02 10:32:24 <schmorp> es _muss_ immer einen callback geben für lesedaten
101 02 10:32:25 <schmorp> ODER
102 02 10:32:29 <Muttley> Morning
103 02 10:32:30 <schmorp> er darf nicht lesen
104 02 10:32:34 <schmorp> Muttley: hi pauk
105 02 10:32:40 <schmorp> Muttley: didn't we want a firmware today?
106 02 10:32:44 <schmorp> (sometime)
107 02 10:32:54 <Muttley> If you would be so kind, that would be great :)
108 02 10:32:56 <elmex> schmorp: bisher machts ::Handle halt so, das er nicht liest wenn niemand einen callback fuers lesen instal liert hat. ich dachte das sollte ruhig weiter so sein
109 02 10:33:00 <schmorp> Muttley: right now?
110 02 10:33:13 <schmorp> elmex: ja, das ist gut
111 02 10:33:19 <schmorp> elmex: aber dann gibts auch keinen default-fall
112
113 02 11:43:38 <schmorp> $socket->push_read_line ([$sep, ]$cb)
114 02 11:43:49 <schmorp> oder read-handler müsste dann "nur" folgendes machen:
115 02 11:43:51 <schmorp> sysread
116 02 11:43:58 <schmorp> if (!queue) on_read
117 02 11:44:00 <schmorp> else
118 02 11:44:07 <schmorp> while()
119 02 11:44:14 <schmorp> queu[0]->callback
120 02 11:44:22 <schmorp> if (!progress)
121 02 11:44:30 <schmorp> if (eof-föag) on_eof;
122 02 11:44:32 <schmorp> last
123 02 11:44:45 <schmorp> shift queue
124 02 11:44:52 <schmorp> scheiss python-whitespace-indenting
125