[Unicode]   Common Locale Data Repository : Bug Tracking Home | Site Map | Search
 
Modify

CLDR Ticket #7429(accepted unknown)

Opened 3 years ago

Last modified 20 months ago

Change DisplayAndInputProcessor.processForDisplay to not be synchronized [only branch]

Reported by: mark Owned by: googler
Component: unknown Data Locale:
Phase: dsub Review:
Weeks: Data Xpath:
Xref:

Description

This means checking for everything involved: instance and static fields, etc. and making sure that they are properly handled.


There are multiple field variables in use:

col : Collator
isPosix : boolean
locale : CLDRLocale
pp : PrettyPrinter
spaceCol : Collator

Plus a batch of static variables. Most of those are immutable, but each one needs to be examined. Special ones to watch for are transforms and collators. Collators for example are not thread-safe unless frozen (I filed http://unicode.org/cldr/trac/ticket/7428, which Robert should take and do unless someone squeals). I don't know off-hand about the transforms.

Making synchronization more granular is, in general, a worthy goal. However, it can be complicated to do, because we have to check not only the instance fields, but also the static fields for thread safety; and watch for deadlocks, of course. So the testing needs to be thorough.

So we only really want to go through that effort where we determine by testing that there is a problem.

Attachments

Change History

comment:1 Changed 3 years ago by mark

  • Owner changed from anybody to ribnitz
  • Priority changed from assess to major
  • Status changed from new to assigned
  • Milestone changed from UNSCH to 26dsub

comment:2 Changed 3 years ago by ribnitz

  • Status changed from assigned to reviewing
  • Review set to mark

The changes have been committed to a branch, which can be merged to head once the review is done.

comment:3 Changed 3 years ago by mark

  • Status changed from reviewing to accepted

Review:

public DisplayAndInputProcessor(CLDRFile cldrFileToCheck) and so on

Don't repeat the code for all the constructors. Instead, funnel them all through one constructure by calling this(CLDRLocale locale, boolean needsCollator).

comment:4 Changed 3 years ago by ribnitz

  • Status changed from accepted to reviewing

comment:5 Changed 3 years ago by mark

  • Status changed from reviewing to accepted

first verify that PrettyPrinter is threadsafe and document it in the file near pp; otherwise this will fail.

comment:6 Changed 3 years ago by mark

  • Owner changed from ribnitz to googler

comment:7 Changed 3 years ago by mark

  • Milestone changed from 26dsub to 27dsub

comment:8 Changed 3 years ago by markus

  • Phase set to dsub
  • Milestone changed from 27dsub to 27

comment:9 Changed 3 years ago by emmons

  • Milestone changed from 27 to UNSCH

comment:10 Changed 20 months ago by mark

  • Review mark deleted
  • Summary changed from Change DisplayAndInputProcessor.processForDisplay to not be synchronized to Change DisplayAndInputProcessor.processForDisplay to not be synchronized [only branch]
View

Add a comment

Modify Ticket

Action
as accepted
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.