aaron3481 / as3-arduino-connector

Automatically exported from code.google.com/p/as3-arduino-connector
0 stars 0 forks source link

ReadBytesAsArray() is not thread-safe #33

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Run bidirectional communication, not ask-wait-read responce .

What is the expected output? What do you see instead?
Input data should not be corrupted.

What version of the product are you using? On what operating system?
1.5.0

Please provide any additional information below.

FREObject getBytesAsArray(FREContext ctx, void* funcData, uint32_t argc, 
FREObject argv[])
{
  FREObject result;

   FRENewObject((const uint8_t*) "Array", 0,  NULL, &result, NULL);
   FRESetArrayLength(result,bufferSize-1);

   FREObject myChar;
   int i;

   pthread_mutex_lock( &safety);
   for(i=0; i < bufferSize; i++)
     {
       FRENewObjectFromUTF8(1,(unsigned char *) buffer+i, &myChar);
       FRESetArrayElementAt(result, i, myChar);
     }

  bufferSize=0;
  sentEvent = 0;
  pthread_mutex_unlock( &safety);

  return result;
}

   pthread_mutex_lock( &safety);

should be placed before 

   FRESetArrayLength(result,bufferSize-1);

Original issue reported on code.google.com by h...@deep-shadows.com on 10 Apr 2015 at 11:27

GoogleCodeExporter commented 9 years ago
This project has been moved to GitHub by Google Code.  
https://github.com/quetwo/as3-arduino-connector  Would you mind submitting a 
pull request there to correct these issues?  I would love to include them in a 
new release.

Original comment by Nicholas...@gmail.com on 14 Apr 2015 at 10:02