{ "id": "169895", "key": "TIMOB-25344", "fields": { "issuetype": { "id": "7", "description": "gh.issue.story.desc", "name": "Story", "subtask": false }, "project": { "id": "10153", "key": "TIMOB", "name": "Titanium SDK/CLI", "projectCategory": { "id": "10100", "description": "Titanium and related SDKs used in application development", "name": "Client" } }, "fixVersions": [], "resolution": { "id": "10100", "description": "This issue won't be actioned.", "name": "Won't Do" }, "resolutiondate": "2018-07-26T03:51:43.000+0000", "created": "2017-09-26T00:55:39.000+0000", "priority": { "name": "Medium", "id": "3" }, "labels": [], "versions": [ { "id": "18414", "description": "", "name": "Release 6.2.0", "archived": false, "released": true, "releaseDate": "2017-09-13" } ], "issuelinks": [ { "id": "56002", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "169095", "key": "TIMOB-25019", "fields": { "summary": "Add titanium-mobile-mocha-suite into the titanium_mobile_windows build process", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "None", "id": "6" }, "issuetype": { "id": "8", "description": "A technical task.", "name": "Technical task", "subtask": true } } } } ], "assignee": { "name": "kiguchi", "key": "kota", "displayName": "Kota Iguchi", "active": false, "timeZone": "America/Los_Angeles" }, "updated": "2018-07-26T03:51:43.000+0000", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "components": [ { "id": "12642", "name": "Windows", "description": "Windows authoring support" } ], "description": "According to the studies from TIMOB-25019, we found some pitfalls in current `setTimeout/setInterval` implementations. There may be rare chances to encounter but we want simpler/faster/safer implementation for it. \r\n\r\n- Make sure to clear callback right after callback is actually called from `setTimeout`. \r\n- Invoke callback immediately when interval equals zero. It had synchronization issue with `clearTimeout/clearInterval`.\r\n- `Xaml::DispatcherTimer` functions should have been called from UI thread. Use `ThreadPoolTimer` when possible, because it doesn't have the issue. \r\n- With `ThreadPoolTimer`, make sure to invoke callback from UI thread.\r\n\r\nNote that this is about internal implementation, so the API functionalities {{setTimeout/setInterval/clearTimeout/clearInterval}} should not be changed.", "attachment": [], "flagged": false, "summary": "Windows: New Timer implementation", "creator": { "name": "kiguchi", "key": "kota", "displayName": "Kota Iguchi", "active": false, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "kiguchi", "key": "kota", "displayName": "Kota Iguchi", "active": false, "timeZone": "America/Los_Angeles" }, "environment": null, "comment": { "comments": [ { "id": "428439", "author": { "name": "kiguchi", "key": "kota", "displayName": "Kota Iguchi", "active": false, "timeZone": "America/Los_Angeles" }, "body": "https://github.com/appcelerator/titanium_mobile_windows/pull/1116", "updateAuthor": { "name": "kiguchi", "key": "kota", "displayName": "Kota Iguchi", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2017-09-26T00:57:53.000+0000", "updated": "2017-09-26T00:57:53.000+0000" }, { "id": "439487", "author": { "name": "kiguchi", "key": "kota", "displayName": "Kota Iguchi", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Closing this, as current Timer implementation doesn't actually cause issues.", "updateAuthor": { "name": "kiguchi", "key": "kota", "displayName": "Kota Iguchi", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2018-07-26T03:51:43.000+0000", "updated": "2018-07-26T03:51:43.000+0000" } ], "maxResults": 2, "total": 2, "startAt": 0 } } }