Uploaded image for project: 'Apache Cordova'
  1. Apache Cordova
  2. CB-7109

exec() call to plugin blocked the main thread

    XMLWordPrintableJSON

Details

    Description

      In the file plugin of v3.5.0, I constantly see a warning in logcat in eclipse when I try to write to a file. The warning is:

      THREAD WARNING: exec() call to File.write blocked the main thread for 117ms. Plugin should use CordovaInterface.getThreadPool().

      Similar issue is when I try to exit app. I guess this issue is present for all the plugins. I checked the part of File plugin code:

      final String fname=args.getString(0);
      final String data=args.getString(1);
      final int offset=args.getInt(2);
      final Boolean isBinary=args.getBoolean(3);
      threadhelper( new FileOp( ){
      public void run() throws FileNotFoundException, IOException, NoModificationAllowedException

      { long fileSize = write(fname, data, offset, isBinary); callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.OK, fileSize)); }

      }, callbackContext);

      And, threadhelper uses:

      cordova.getThreadPool().execute(new Runnable() {
      public void run() {}
      });

      This means, the plugin is using a thread to do some async task, but logcat throws the block warning. We need to fix this.

      Attachments

        Issue Links

          Activity

            People

              iclelland Ian Clelland
              rajesh1158 Rajesh Kumar
              Votes:
              1 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: