Mark, I'm curious...is the clipboard timing problem a new problem on trunk, or did it occur on 3.2.0 also? I'll explain why I'm asking once I have your answer.
Rick On Wed, Jul 2, 2008 at 5:56 PM, Mark Miesfeld <[EMAIL PROTECTED]> wrote: > On Wed, Jul 2, 2008 at 1:48 PM, Chip Davis <[EMAIL PROTECTED]> wrote: >> On 6/30/08 14:48 Mark Miesfeld said: >>> The Clipboard test case that failed did a clipboard copy immediately >>> followed by a clipboard paste. >>> >>> cb1~copy("Some text") >>> text = cb2~paste >>> >>> Sometimes text would be the empty string. I think that was just >>> timing. If you query the clipboard to see if it has data after the >>> copy, then do the paste, it works every time. Normally you would >>> query the clipboard to see if it has data before doing a paste anyway. >> >> uh, Mark... Is this behavior documented? I'm not at all sure that I would >> have >> thought to "query the clipboard" any more than I would have thought to >> re-read a >> just-written file record "to see if it has data". > > Chip, > > This behavior is that of the underlying Windows API. I'm not real > familiar with the Clipboard API, I'll research it a little, I'm not > sure if Microsoft documents or not. If you mean do we (ooRexx) > document it, then no. In all of the ooRexx extensions that provide > access to the underlying Windows API, we document some of the high > level behavior. It would be impossible to try and repeat all the > Windows documentation in our ooRexx documentation. > > But, the Clipboard stuff is inter-process. There has to be some delay > while the OS marshals the data for inter-process communication. > > This test opened two separate clipboards (two separate underlying OS > clipboards.) Then after they were both open, it wrote (copied) to one > clipboard and immediately read (pasted) from the other. In the > underlying C functions that implement this for ooRexx, the actual read > first checks that there is data in the clipboard and if not returns > the empty string. > > It is not surprising to me that the would second clipboard signal it > did not have the data yet. I am sure that the underlying API would > marshal the data going to the second clipboard, even though we know > the two processes were the same. > >> A copy operation, immediately followed by a paste operation, that failed on >> occasion would definitely raise my astonishment factor... > > The test case that opens only 1 clipboard and does a copy / past back > to back never fails. > > Remember too that we are trying to test that our (ooRexx's) functions > are working correctly, we are not trying to see if we can break the > underlying Windows API. > > I put a printf in the code to see why we were getting the empty string > back. It was because the second clipboard (the underlying OS's > clipboard) signaled that it did not have data. Our ooRexx function > was doing the right thing and working as designed. > > I then stepped through it with the debugger and the clipboard *always* > signaled it had data. That leads me to believe the problem with the > test case was timing. The test case was trying to simulate the > behavior of copy / paste between 2 processes, but in a single process. > > The point I was trying to make with the post was that: Hey, I changed > a test case, but I don't think the change in the test case changed the > nature of the test. > >> I'm not at all sure that I would have >> thought to "query the clipboard" > > You would if you were writing to the underlying Windows APIs in C and > something didn't work. <grin> > > -- > Mark Miesfeld > > ------------------------------------------------------------------------- > Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW! > Studies have shown that voting for your favorite open source project, > along with a healthy diet, reduces your potential for chronic lameness > and boredom. Vote Now at http://www.sourceforge.net/community/cca08 > _______________________________________________ > Oorexx-devel mailing list > Oorexx-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/oorexx-devel > ------------------------------------------------------------------------- Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW! Studies have shown that voting for your favorite open source project, along with a healthy diet, reduces your potential for chronic lameness and boredom. Vote Now at http://www.sourceforge.net/community/cca08 _______________________________________________ Oorexx-devel mailing list Oorexx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/oorexx-devel